opendds的配置

配置的使用

文档中说明有4种使用配置的方式:

  1. 环境变量

  2. 命令行参数(将覆盖环境变量中的配置)

  3. 配置文件(不会覆盖环境变量或命令行参数中的配置)

  4. 用户调用的 API(将覆盖现有配置)

这里对开发人员来说,配置文件是最合适和有用的,其它情况只在特定情况下使用。这里我只是简单介绍,让大家可以快速上手。具体内容需要自己通过文档熟悉。

这里只介绍配置文件。分为2种类型介绍,集中式发现和端对端模式。

端对端模式(RTPS协议)

最简单的配置

使用源码中自带的配置rtps.ini.所有配置都是默认值。这个就能把程序跑起来。

基本内容:

[common]
DCPSDefaultDiscovery=DEFAULT_RTPS
DCPSGlobalTransportConfig=$file

[transport/the_rtps_transport]
transport_type=rtps_udp
 

增加配置

  • 指定本机IP

DCPSDefaultAddress=192.168.1.10,在通用配置下面配置。

  • 配置发现地址

SpdpMulticastAddress=239.255.0.1:7400

  • 也可以配置发现地址
InteropMulticastOverride=239.255.4.0

rtps设置并使用RtpsRelay

[common]
DCPSGlobalTransportConfig=$file

[domain/4]
DiscoveryConfig=rtps

[rtps_discovery/rtps]
SpdpRtpsRelayAddress=1.2.3.4:4444
SedpRtpsRelayAddress=1.2.3.4:4445
UseRtpsRelay=1

[transport/the_rtps_transport]
transport_type=rtps_udp
DataRtpsRelayAddress=1.2.3.4:4446
UseRtpsRelay=1

集中发现(启动DCPSInfoRepo)

最简单的配置(订阅发布端)

[common]
DCPSDebugLevel=5
DCPSInfoRepo=corbaloc::192.168.2.112:65123/DCPSInfoRepo
DCPSGlobalTransportConfig=config1

[config/config1]
transports=tcp1
 
[transport/tcp1]

transport_type=tcp

仓库配置(推荐命令行)

DCPSInfoRepo没有复杂配置,一般就是直接启动就是了,主要是命令行和文件2种。

1.命令行

DCPSInfoRepo -ORBListenEndpoints iiop://192.168.1.137:12345 -ORBDebugLevel 10
2.文件

DCPSInfoRepo -o repo.ior
 

3.前面结合

DCPSInfoRepo -ORBListenEndpoints iiop://192.168.2.3:12345 -o /home/test/OpenDDS/tests/repo.ior


repo.ior文件怎么来?

DCPSInfoRepo 自动生成的,也就是默认的,如果要修改则使用命令行启动。

传输配置

   单一配置

例如:

[common]
DCPSGlobalTransportConfig=myconfig

[config/myconfig]
transports=mytcp

[transport/mytcp]
transport_type=tcp
local_address=myhost

只有一种传输类型,其中传输最主要的配置就是local_address.

混合配置

例如:
 

[common]
DCPSGlobalTransportConfig=myconfig

[config/myconfig]
transports=mymulticast,mytcp

[transport/mymulticast]
transport_type=multicast

[transport/mytcp]
transport_type=tcp

在myconfig的传输配置中,分别配置了2个传输,设置了2种不同传输协议,多播和tcp,按照顺序以多播为主。则应用程序将尝试使用多播来启动数据写入器和读取器之间的通信。 如果初始多点传送通信由于任何原因(可能是因为中间路由器未传递多点传送流量)而失败,则使用 tcp 启动连接。

另外还有一些各种网络情形下的配置,就不讲了,大家在特殊情况下,自己研究复杂的配置。这里只是最简单主要的介绍一下。

tcp传输的主要配置项

conn_retry_initial_delay:重连时间(毫秒)。

pub_address:使用配置的字符串覆盖发送给对等体的地址。 这可用于防火墙遍历和其他高级网络配置。

udp传输主要配置项

send_buffer_size:传输缓冲大小。

rcv_buffer_size:接收缓冲大小。

都是字节单位。

多播传输主要配置项

说明一下:如果是多播传输,则每个多播地址只能是唯一的一个域使用,换句话说,就是有多个域时,就要为每一个域配置一个多播地址,怎么单独为域配置参数,自己研究文档。一般建议应用程序就使用一个域就行了。

group_address:多播地址

rcv_buffer_size:套接字接收缓冲区的大小(以字节为单位)。 值为零表示使用系统默认值。

ttl:发送的任何数据报的生存时间 (TTL) 字段的值。 此值指定数据报在被网络丢弃之前将遍历的跃点数。

RTPS UDP 传输配置

注意事项:

1.RTPS UDP 传输实例不能由不同的域参与者共享。配置模板可用于解决此问题。

2.RTPS 部分支持传输自动选择(协商),以便传输仅在 Reliable 模式下经历握手阶段。

配置:

use_multicast:传输可以使用 Unicast 或 Multicast。 当设置为 (false) 时,传输使用单播,否则值 (true) 将使用多播。默认是开启。

multicast_group_address:多播网络地址。如果未指定,则有计算方式。

multicast_interface:特定平台使用网络接口名称。

heartbeat_period:Protocol tuning 参数,用于指定 RTPS 编写器宣布数据可用性的频率(以毫秒为单位)。

send_buffer_size:用于发送 RTPS 消息的套接字发送缓冲区大小。

rcv_buffer_size:用于接收 RTPS 消息的套接字接收缓冲区大小。

ttl:发送的任何多播数据报的生存时间 (TTL) 字段的值。 此值指定数据报在被网络丢弃之前将遍历的跃点数。

DataRtpsRelayAddress:指定 RTPS 消息的 RtpsRelay 的地址。

UseRtpsRelay:向 RtpsRelay 发送消息。 只有在设置后才会发送消息。默认0不发送。

所有传输类型共有的配置项

local_address:本机使用的通讯地址,所有传输配置都可以配置。

OpenDDS 框架日志配置

在通用节点配置

[common]
DCPSLogLevel=notice

传输层日志

传输层日志需要再配置项控制开启,传入参数

-DCPSTransportDebugLevel level(level的值是0-5)。

最后的吐槽

看了一下现在csdn的博文,随便一篇博文都是收费的,原创需要尊重,毕竟花费时间和精力来写,也帮别人解决了很多问题,但是就写一下官网的东西,翻译一下都是收费的,我想吐槽。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值