配置的使用
文档中说明有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的博文,随便一篇博文都是收费的,原创需要尊重,毕竟花费时间和精力来写,也帮别人解决了很多问题,但是就写一下官网的东西,翻译一下都是收费的,我想吐槽。

693

被折叠的 条评论
为什么被折叠?



