ZBLOG

3.1.2.2.13. TransportConfigQos This QoS Policy allows the configuration of the transport layer settings. See TransportConfigQos. List of QoS Policy data members: Data Member Name Type Default Value user_transports std::vector

3.1.2.2.13 TransportConfigQos

TransportConfigQos 是一个QoS策略,允许配置传输层的设置。

QoS策略数据成员列表:

数据成员名称 类型 默认值
user_transports std::vectorstd::shared_ptr<TransportDescriptorInterface> 空向量
use_builtin_transports bool true
send_socket_buffer_size uint32_t 0
listen_socket_buffer_size uint32_t 0
builtin_transports_reception_threads() ThreadSettings
max_msg_size_no_frag uint32_t 0
netmask_filter fastdds::rtps::NetmaskFilterKind AUTO

数据成员说明:

  • user_transports: 定义要与内置传输一起使用或替代的传输列表。
  • use_builtin_transports: 控制是否启用内置传输层。如果设置为false,则禁用默认的UDPv4实现。
  • send_socket_buffer_size: 默认情况下,Fast DDS创建使用系统默认大小的套接字缓冲区。此数据成员允许更改用于发送数据的发送套接字缓冲区大小。
  • listen_socket_buffer_size: 监听套接字缓冲区大小也是根据系统默认大小创建,但可以使用此数据成员进行更改。
  • builtin_transports_reception_threads(): 内置传输的接收线程的ThreadSettings。
  • max_msg_size_no_frag: 用于避免分片的最大消息大小。当配置的传输允许发送大数据报时(例如SHM或TCP),此选项非常有用。
  • netmask_filter: 网络过滤器配置。

注意:该QoS策略适用于DomainParticipant实体。它无法在已启用的实体上进行更改。

TransportDescriptorInterface

该结构是用于定义传输配置的数据类型的基础。

结构成员列表:

成员名称 类型
maxMessageSize uint32_t
maxInitialPeersRange uint32_t

成员说明:

  • maxMessageSize: 设置传输消息缓冲区的最大字节数。
  • maxInitialPeersRange: 表示尝试连接时猜测初始对等体的最大数量。

示例

  1. // 此示例仅适用于 DomainParticipant 实体
  2. DomainParticipantQos participant_qos;
  3. // 添加新传输到用户传输列表
  4. std::shared_ptr<eprosima::fastdds::rtps::UDPv4TransportDescriptor> descriptor =
  5. std::make_shared<eprosima::fastdds::rtps::UDPv4TransportDescriptor>();
  6. descriptor->sendBufferSize = 9126;
  7. descriptor->receiveBufferSize = 9126;
  8. // 将描述符添加到用户传输中
  9. participant_qos.transport().user_transports.push_back(descriptor);
  10. // 将 use_builtin_transports 设置为 false
  11. participant_qos.transport().use_builtin_transports = false;
  12. // [可选] 为内置传输接收线程设置 ThreadSettings
  13. participant_qos.transport().builtin_transports_reception_threads_ =
  14. eprosima::fastdds::rtps::ThreadSettings{2, 2, 2, 2};
  15. // 设置 max_msg_size_no_frag 为 > 65500 KB 的值
  16. participant_qos.transport().max_msg_size_no_frag = 70000;
  17. // 配置网络掩码过滤器
  18. participant_qos.transport().netmask_filter = eprosima::fastdds::rtps::NetmaskFilterKind::ON;
  19. // 使用修改后的 QoS 创建 DomainParticipant 实体
  20. participant_ = factory_->create_participant(domain, participant_qos);

注意:TransportConfigQos也可以通过选择其中一种可用内置传输选项来修改内置传输配置。请参见管理内置传输或setup_transports()。


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

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

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

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

联系我们

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

微信号:3007537140

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

关注我们
x

注册

已经有帐号?