OpenDDS 配置文件详解

配置文件格式:除了common外,[section type/instance],如[repository/repo_1]

命令行使用配置文件:./publisher -DCPSConfigFile pub.ini

代码级别设置默认配置文件: Service_Participant模块允许DDS客户端应用层代码级别去配置OpenDDS

#include <dds/DCPS/Service_Participant.h>

int main (int argc, char* argv[]){

TheServiceParticipant->default_configuration_file(ACE_TEXT(“pub.ini”));

DDS::DomainParticipantFactory_var dpf = TheParticipantFactoryWithArgs(argc, argv);

 

 

[Common Configuration Options]

[common]

Option

Description

Default

DCPSBit=[1|0]

切换内置主题支持

1

DCPSBitLookupDurationMsec=msec

检索给定实例句柄的BIT数据时,框架将等待潜在的内置主题信息的最大持续时间(以毫秒为单位)。 参与者代码可以在框架接收并处理相关的BIT信息之前获取远程实体的实例句柄。 框架会在操作失败之前等待多长给定的时间。

2000

DCPSBitTransportIPAddress=addr

用于标识tcp传输内置主题的本地接口的IP地址。

注意:此属性仅适用于DCPSInfoRepo configuration

INADDR_ANY

DCPSBitTransportPort=port

用于标识tcp传输内置主题的端口。如果使用默认值“ 0”,则操作系统来选择要使用的端口。

注意:此属性仅适用于DCPSInfoRepo configuration。

0

DCPSChunks=n

当RESOURCE_LIMITS QoS值是无穷大时,数据写入者和读取者的缓存分配器将预分配的块的可配置数量。 当所有预分配的块都在使用时,OpenDDS从堆中进行分配。

20

DCPSChunkAssociationMultiplier=n

与DCPSChunks或resource_limits.max_samples相乘的值,以确定已预先分配的浅拷贝块的总数。 将此值设置为大于连接数的值,以使预分配的块句柄不会用完。 写入多个数据读取器的样本不会被多次复制,但是该样本有一个浅表复制句柄,用于管理向每个数据读取器的交付。 句柄的大小很小,因此不需要将此值设置为接近连接数。

10

DCPSDebugLevel=n

控制DCPS层打印的调试信息量的整数值。 有效值为0到10。

•0-表示严重错误的日志,未指示在返回code中(几乎没有)。

•1-每个进程应该发生一次或警告的日志

•2-每个DDS实体应该发生一次的日志

•4-与管理界面相关的日志

•6-每N个样本写入/读取应发生的日志

•8-每个样本写入/读取应发生一次的日志

•10-每次样本写入/读取可能发生多次的日志

0

DCPSDefaultAddress=addr

包含local_address的传输实例的local_address主机部分的默认值。 仅在将DCPSDefaultAddress设置为非空值并且在传输中未指定local_address时应用。其他子系统(例如DDSI-RTPS Discovery)也将DCPSDefaultAddress用作默认值。

 

DCPSDefaultDiscovery=[

DEFAULT_REPO|

DEFAULT_RTPS|

DEFAULT_STATIC|

user-defined configuration instance name]

指定用于未明确配置的任何域的发现配置。 DEFAULT_REPO转换为使用DCPSInfoRepo。 DEFAULT_RTPS指定使用RTPS进行发现。 DEFAULT_STATIC指定使用静态发现。

DEFAULT_REPO

DCPSGlobalTransportConfig=name

指定应该用作全局配置的传输配置的名称。 所有未指定传输配置的实体都使用此配置。 $ file的特殊值使用的传输配置包括配置文件中定义的所有传输实例

??

DCPSInfoRepo=objref

用于查找DCPS信息存储库的对象引用。 这可以是完整的CORBA IOR,也可以是简单的host:port字符串。

file://repo.ior

DCPSLivelinessFactor=n

活动性租用期限的百分比,在此百分比之后发送活动性消息。 值80表示从最后检测到的心跳消息开始之后延迟减少了20%。

80

DCPSMonitor=[0|1]

使用OpenDDS_monitor库发布有关监视主题的数据

0

DCPSPendingTimeout=sec

数据写入器将阻塞的最大持续时间(以秒为单位),以允许删除未发送的样本。 默认情况下,此选项会无限期阻止。

0

DCPSPersistentDataDir=path

文件系统上将存储持久数据的路径。 如果该目录不存在,它将自动创建。

OpenDDS-durable-data-dir

DCPSPublisherContentFilter=[1|0]

控制内容过滤主题的过滤器表达式评估策略。 启用(1)后,如果所有订阅者都将忽略这些样本,则发布者可以将样本移交给传输之前丢弃任何样本。

1

DCPSSecurity=[0|1]

仅在启用DDS安全性的情况下编译OpenDDS时,此设置才可用。 如果设置为1,则启用DDS Securityframework和内置插件。 必须使用特定的QoS策略值来创建使用安全性的每个域参与者。

0

DCPSSecurityDebug=CAT[,CAT...]

仅在启用DDS安全性的情况下编译OpenDDS时,此设置才可用。 这将按类别控制安全调试日志记录的粒度。

0

DCPSSecurityDebugLevel=n

仅在启用DDS安全性的情况下编译OpenDDS时,此设置才可用。 这将按调试级别控制安全性调试日志记录的粒度。

N/A

DCPSSecurityFakeEncryption=[0|1]

仅在启用DDS安全性的情况下编译OpenDDS时,此设置才可用。 设置为1时,此选项禁用所有加密(加密和解密的操作)。 OpenDDS仍会生成密钥并执行其他安全性簿记,因此该选项通过调试手动检查所有消息,对调试安全性基础结构很有用。

0

pool_size=n_bytes

安全配置文件存储池的大小,以字节为单位。

41943040 (40 MiB)

pool_granularity=n_bytes

安全配置文件存储池的粒度(以字节为单位)。 必须是8的倍数。

8

Scheduler=[

SCHED_RR|

SCHED_FIFO|

SCHED_OTHER]

选择要使用的线程调度器。 在大多数系统上,将调度程序设置为默认值以外的值需要特权。 可以设置SCHED_RR,SCHED_FIFO或SCHED_OTHER的值。 SCHED_OTHER是大多数系统上的默认调度程序。

SCHED_OTHER

scheduler_slice=usec

选择默认调度程序以外的某些调度程序时,某些操作系统(例如SunOS)需要设置时间片值。 对于那些系统,此选项可用于以微秒为单位设置值。

None

DCPSBidirGIOP=[0|1]

使用TAO的双向GIOP功能与DCPSInfoRepo进行交互。 启用BiDir后,可以使用较少的套接字,因为相同的套接字可用于客户端和服务器角色。

1

DCPSThreadStatusInterval=sec

使用指定的报告间隔(以秒为单位)对内部线程状态进行报告。

0 (disabled)

 

[Discovery Configuration]

[Domain Configuration]

[domain/*]

Option

Description

Default

DomainId=n

表示与存储库关联的域的整数值。

 

DomainRepoKey=k

映射的存储库的键值(不推荐使用。为向后兼容而提供)。

 

DiscoveryConfig=config instance name

用户定义的字符串,它引用同一配置文件中[repository]或[rtps_discovery]节的实例名称或内部默认值之一(DEFAULT_REPO,DEFAULT_RTPS或DEFAULT_STATIC)。

 

DefaultTransportConfig=config

用户定义的字符串,它引用[config]节的实例名称

 

[Multiple repository configuration sections]

[repository/*]

Option

Description

Default

RepositoryIor=ior

存储库IOR或host:port。

 

RepositoryKey=key

存储库的唯一键值。 (不推荐使用。为向后兼容而提供)

 

[RTPS Discovery Configuration Options]

[rtps_discovery/*]

Option

Description

Default

ResendPeriod=sec

参与者公告之间进程等待的秒数

30

MinResendDelay

参与者公告之间的最短时间(以毫秒为单位)。

100

QuickResendRatio

配置本地SDPD重发的调整参数(重发周期的比率)

0.1

LeaseDuration=sec

作为参与者发送公告的一部分。 它告诉对等参与者,如果他们在指定的持续时间内没有收到该参与者的消息,则可以认为该参与者“没有生命”。

300

PB=port

端口基本号。 此数字设置派生用于简单端点发现协议(SEDP)的端口号的起点。 此属性与DG,PG,D0(或DX)和D1结合使用,以构造用于RTPS发现通信的必要端点。

7400

DG=n

表示域增益的整数值。 这是一个乘法器,有助于为RTPS制定多播或单播端口。

250

PG=n

一个整数,它有助于配置SPDP 单播端口并用作偏移乘数,因为使用以下公式为参与者分配了地址:

PB + DG * domainId + d1 + PG * particatorId

2

D0=n

一个整数值,有助于在SPDP Multicast配置中提供用于计算可分配端口的偏移量。 使用的公式为:

PB + DG * domainId + d0

0

D1=n

一个整数值,有助于在SPDP Unicast配置中提供用于计算可分配端口的偏移量。 使用的公式为:

PB + DG * domainId + d1 + PG *particatorId

10

SedpMaxMessageSize

设置最大SEDP消息大小。 默认值为最大UDP消息大小。

65466

SedpMulticast=[0|1]

一个布尔值(0或1),用于确定是否将多播用于SEDP通信。 设置为1时,使用多播。 设置为零(0)时,使用SEDP的单播

1

SedpLocalAddress=addr:port

配置传输实例的创建以及通过SEDP绑定到指定的本地地址和端口。 为了保留未指定的端口,可以从设置中将其省略,但必须在末尾加上:。

System default address

SpdpLocalAddress=addr[:port]

本地接口的地址,SPDP将使用该地址绑定到该特定接口。

DCPSDefaultAddress, or IPADDR_ANY

DX=n

一个整数值,有助于在SEDP组播配置中提供用于计算端口的偏移量。 使用的公式为:

PB + DG * domainId + dx

仅当SedpMulticast = 1时有效。

2

SpdpSendAddrs=

[host:port],[host:port]...

host:port对的列表(用逗号或空格分隔),用作SPDP内容的目标。 这可以是单播和多播地址的组合。

 

MaxSpdpSequenceMsgResetChecks=n

超过了此数量的SPDP消息的序列号之后,删除发现的参与者。

3

PeriodicDirectedSpdp=[0|1]

一个布尔值,它确定是否在每个重发周期将定向的SPDP消息发送给所有参与者。 应该为不能使用多播发送SPDP公告的参与者(例如RtpsRelay)启用此设置。

0

UndirectedSpdp=[0|1]

一个布尔值,它确定是否发送无向SPDP消息。 对于无法使用多播发送SPDP通知的参与者(例如RtpsRelay),应禁用此设置。

1

InteropMulticastOverride=group_address

指定要用于SPDP发现的多播组的网络地址。 这将覆盖规范的互操作性组。 例如,它可用于指定路由组地址的使用以提供更大的发现范围。

239.255.0.1

TTL=n

作为发现的一部分发送的多播数据报的生存时间(TTL)字段的值。 此值指定数据报在被网络丢弃之前将经过的跃点数。 默认值1表示所有数据都限于本地网络子网。

1

MulticastInterface=iface

指定此发现实例要使用的网络接口。 这使用特定于平台的格式来标识网络接口。 在Linux系统上,这将类似于eth0。如果未配置此值,则使用通用配置值DCPSDefaultAddress来设置多播接口

The system default interface is used

GuidInterface=iface

确定哪个本地MAC地址应出现在由此节点生成的GUID中时要使用的网络接口。

The system / ACE library default is used

SpdpRtpsRelayAddress=host:port

指定用于SPDP消息的RtpsRelay的地址。

 

SpdpRtpsRelaySendPeriod=period

指定发送到RtpsRelay的SPDP公告之间的间隔。

30 s

SedpRtpsRelayAddress=host:port

指定用于SEDP消息的RtpsRelay的地址。

 

RtpsRelayOnly=[0|1]

仅将RTPS消息发送到RtpsRelay(用于调试)。

0

UseRtpsRelay=[0|1]

将消息发送到RtpsRelay。 仅当设置了SpdpRtpsRelayAddress和/或SedpRtpsRelayAddress时,才会发送消息。

0

SpdpStunServerAddress=host:port

SPDP使用ICE时,指定STUN服务器的地址。

 

SedpStunServerAddress=host:port

SEDP使用ICE时,指定STUN服务器的地址。

 

UseIce=[0|1]

为SPDP和SEDP启用或禁用ICE。

0

IceTa=milliseconds

ICE发送之间的最小间隔。

50 ms

IceConnectivityCheckTTL=seconds

连接检查的最大持续时间。

300 s

IceChecklistPeriod=seconds

尝试在此时间内循环进行候选人的所有连接检查。

10

IceIndicationPeriod=seconds

通过此周期向对等体发送STUN指示以维护NAT绑定。

15

IceNominatedTTL=seconds

如果在此时间内未收到指示,请忽视有效的候选人。

300

IceServerReflexiveAddressPeriod=seconds

通过此周期将消息发送到STUN服务器。

30

IceServerReflexiveIndicationCount=integer

在向STUN服务器发送新的绑定请求之前,发送一些指示。

10

IceDeferredTriggeredCheckTTL=seconds

在这段时间后,清除延迟的检查。

300 s

IceChangePasswordPeriod=seconds

在这段时间后,更改ICE密码。

300 s

MaxAuthTime=seconds

设置使用DDS安全性进行身份验证的最长时间。

300 s

AuthResendPeriod=seconds

在这段时间后重新发送身份验证消息。

1 s

SecureParticipantUserData=[0|1]

如果启用了DDS安全性,则从不安全的发现消息中将省略参与者的USER_DATA QoS。

0

UseXTypes=[0|1]

启用XTypes规范中的发现扩展。 参与者使用类型查找服务交换端点公告中的顶级类型信息和扩展类型信息。

1

TypeLookupServiceReplyTimeout=milliseconds

如果将请求发送到对等方的“类型查找服务”(请参见上面的UseXTypes),请在此期间内等待答复。

5 seconds

 

[Configuring For Static Discovery] *当前静态发现只能使用rtps_udp传输

[topic/*] Configuration Options

Option

Description

Default

name=string

topic的名称

Instance nameof section

type_name=string

唯一定义样本类型的标识符。 这通常是CORBA接口存储库类型名称。

Required

[datawriterqos/*] Configuration Options

Option

Description

Default

durability.kind=[

VOLATILE|TRANSIENT_LOCAL]

 

 

deadline.period.sec=[

numeric|DURATION_INFINITE_SEC]

 

 

deadline.period.nanosec=[

numeric|DURATION_INFINITE_NANOSEC]

 

 

latency_budget.duration.sec=[

numeric|DURATION_INFINITE_SEC]

 

 

latency_budget.duration.nanosec=[

numeric|DURATION_INFINITE_NANOSEC]

 

 

liveliness.kind=[

AUTOMATIC| MANUAL_BY_TOPIC| MANUAL_BY_PARTICIPANT]

 

 

liveliness.lease_duration.sec=[

numeric|DURATION_INFINITE_SEC]

 

 

liveliness.lease_duration.nanosec=[

numeric|DURATION_INFINITE_NANOSEC]

 

 

reliability.kind=[

BEST_EFFORT|RELIABILE]

 

 

reliability.max_blocking_time.sec=[

numeric|DURATION_INFINITE_SEC]

 

 

reliability.max_blocking_time.nanosec=[ numeric|DURATION_INFINITE_NANOSEC]

 

 

destination_order.kind=[

BY_SOURCE_TIMESTAMP| BY_RECEPTION_TIMESTAMP]

 

 

history.kind=[KEEP_LAST|KEEP_ALL]

 

 

history.depth=numeric

 

 

resource_limits.max_samples=numeric

 

 

resource_limits.max_instances=numeric

 

 

resource_limits.max_samples_per_instance= numeric

 

 

transport_priority.value=numeric

 

 

lifespan.duration.sec=[ numeric|DURATION_INFINITE_SEC]

 

 

lifespan.duration.nanosec=[ numeric|DURATION_INFINITE_NANOSEC]

 

 

ownership.kind=[SHARED|EXCLUSIVE]

 

 

ownership_strength.value=numeric

 

 

[datareaderqos/*] Configuration Options

Option

Description

Default

durability.kind=[

VOLATILE|TRANSIENT_LOCAL]

 

 

deadline.period.sec=[

numeric|DURATION_INFINITE_SEC]

 

 

deadline.period.nanosec=[

numeric|DURATION_INFINITE_NANOSEC]

 

 

latency_budget.duration.sec=[

numeric|DURATION_INFINITE_SEC]

 

 

latency_budget.duration.nanosec=[

numeric|DURATION_INFINITE_NANOSEC]

 

 

liveliness.kind=[

AUTOMATIC| MANUAL_BY_TOPIC| MANUAL_BY_PARTICIPANT]

 

 

liveliness.lease_duration.sec=[

numeric|DURATION_INFINITE_SEC]

 

 

liveliness.lease_duration.nanosec=[

numeric|DURATION_INFINITE_NANOSEC]

 

 

reliability.kind=[

BEST_EFFORT|RELIABILE]

 

 

reliability.max_blocking_time.sec=[

numeric|DURATION_INFINITE_SEC]

 

 

reliability.max_blocking_time.nanosec=[ numeric|DURATION_INFINITE_NANOSEC]

 

 

destination_order.kind=[

BY_SOURCE_TIMESTAMP| BY_RECEPTION_TIMESTAMP]

 

 

history.kind=[KEEP_LAST|KEEP_ALL]

 

 

history.depth=numeric

 

 

resource_limits.max_samples=numeric

 

 

resource_limits.max_instances=numeric

 

 

resource_limits.max_samples_per_instance= numeric

 

 

time_based_filter.minimum_separation.sec=[ numeric|DURATION_INFINITE_SEC]

 

 

time_based_filter.minimum_separation.nanosec=[ numeric|DURATION_INFINITE_NANOSEC]

 

 

reader_data_lifecycle.autopurge_nowriter_samples_delay.sec=[ numeric|DURATION_INFINITE_SEC]

 

 

reader_data_lifecycle.autopurge_nowriter_samples_delay.nanosec=[ numeric|DURATION_INFINITE_NANOSEC]

 

 

reader_data_lifecycle.autopurge_dispose_samples_delay.sec=[ numeric|DURATION_INFINITE_SEC]

 

 

reader_data_lifecycle.autopurge_dispose_samples_delay.nanosec=[ numeric|DURATION_INFINITE_NANOSEC]

 

 

[publisherqos/*] Configuration Options

Option

Description

Default

presentation.access_scope=[

INSTANCE|TOPIC|GROUP]

 

 

presentation.coherent_access=[

true|false]

 

 

presentation.ordered_access=[

true|false]

 

 

partition.name=name0,name1,...

 

 

[subscriberqos/*] Configuration Options

Option

Description

Default

presentation.access_scope=[

INSTANCE|TOPIC|GROUP]

 

 

presentation.coherent_access=[

true|false]

 

 

presentation.ordered_access=[

true|false]

 

 

partition.name=name0,name1,...

 

 

[endpoint/*] Configuration Options

Option

Description

Default

domain=numeric

端点的域ID,范围为0-231。 用于形成端点的GUID。

Required

participant=hexstring

12个十六进制数字的字符串。 用于形成端点的GUID。 具有相同域/参与者组合的所有端点应处于同一进程中。

Required

entity=hexstring

6个十六进制数字的字符串。 用于形成端点的GUID。 域/参与者/实体的组合应该是唯一的。

Required

type=[reader|writer]

确定实体是数据读取器还是数据写入器。

Required

topic=name

Refers to a [topic/*] section.

Required

datawriterqos=name

Refers to a [datawriterqos/*] section.

 

datareaderqos=name

Refers to a [datareaderqos/*] section.

 

publisherqos=name

Refers to a [publisherqos/*] section.

 

subscriberqos=name

Refers to a [subscriberqos/*] section.

 

config

Refers to a  [config / *]节中的传输配置。 这用于确定端点的网络地址。

 

 

[Transport Configuration]

[Transport Configuration Options]

[transport/*]

Option

Description

Default

Transports=inst1[,inst2][,...]

此配置将使用的传输实例名称的有序列表。 每个传输配置都需要此字段。

none

swap_bytes=[0|1]

值为0会使DDS以源计算机的本机字节序对数据进行序列化; 值为1会使DDS以相反的字节序对数据进行序列化。 接收方将调整数据的字节序,因此无需在机器之间匹配此选项。 此选项的目的是允许开发人员确定在必要时进行哪一方进行字节顺序调整。

0

passive_connect_duration=msec

初始被动连接建立的超时(毫秒)。 默认情况下,此选项等待十秒钟。 零值将无限期等待(不建议)。

10000

[Common Transport Configuration Options]

Option

Description

Default

transport_type=transport

传输类型; 可以通过传输框架以编程方式扩展可用传输的列表。 tcp,udp,multicast,shmem和rtps_udp包含在OpenDDS中。

none

queue_messages_per_pool=n

当检测到backpressure时,消息发送将要排队。 当消息队列必须增长时,它将以该数字增长。

10

queue_initial_pools=n

backpressure队列的初始池数。 两个backpressure队列值的默认设置为50个消息(5个10个消息的池)预分配了空间。

5

max_packet_size=n

传输数据包的最大大小,包括其传输标头,样本标头和样本数据。

2147481599

max_samples_per_packet=n

传输数据包中的最大样本数。

10

optimum_packet_size=n

即使仍然有排队的样本要发送,大于此大小的传输数据包也会通过电缆发送。 该值可能会影响性能,具体取决于您的网络配置和应用程序性质。

4096 (4 KiB)

thread_per_connection= [0|1]

启用或禁用每个连接发送策略的线程。 默认情况下,此选项处于禁用状态。

0

datalink_release_delay=msec

datalink_release_delay是没有关联后数据链路释放的延迟(以毫秒为单位)。 增加此值可能会减少在频繁添加和删除读取器/写入器关联时重新建立的开销。

10000

[TCP/IP Configuration Options]

Option

Description

Default

active_conn_timeout_period=msec

活动连接侧等待建立连接的时间段(毫秒)。 如果在此期间未连接,则将调用on_publication_lost()回调。

5000

conn_retry_attempts=n

丢弃并调用on_publication_lost()和on_subscription_lost()回调之前的重新连接尝试次数。

3

conn_retry_initial_delay=msec

尝试重新连接的初始延迟(毫秒)。 假设检测到丢失的连接,则尝试重新连接。 如果此重新连接失败,则在此指定的延迟后进行第二次尝试。

500

conn_retry_backoff_multiplier=n

重新连接尝试的退避乘数。 在上述初始延迟之后,后续延迟由该乘数与先前延迟的乘积确定。 例如,如果conn_retry_initial_delay为500,conn_retry_backoff_multiplier为1.5,则第二次重新连接尝试将在第一次重试连接失败后的0.5秒内进行; 第三次尝试将在第二次重试连接失败后的0.75秒内进行; 第三次尝试将在第三次重试连接失败后的1.125秒内进行。

2.0

enable_nagle_algorithm=[0|1]

启用或禁用Nagle的算法。 默认情况下,它是禁用的。 启用Nagle的算法可能会增加吞吐量,但会增加延迟。

0

local_address=host:port

连接接受器的主机名和端口。 默认值为FQDN和端口0,这意味着操作系统将选择该端口。 如果仅指定了主机,但省略了端口号,则主机说明符上仍需要“:”。

fqdn:0

max_output_pause_period=msec

排队中消息无法发送时的最长时间(毫秒)。 如果有样本在排队没有输出,并超过此时间段,则连接将关闭,并且将调用on_*_lost()回调。 默认值为零表示不进行此检查。

0

passive_reconnect_duration=msec

被动连接端等待连接重新连接的时间段(毫秒)。 如果在这段时间内未重新连接,则将调用on _ * _ lost()回调。

2000

pub_address=host:port

用配置的字符串覆盖发送给对等方的地址。 这可用于防火墙穿越和其他高级网络配置。

 

[UDP/IP Configuration Options]

Option

Description

Default

local_address=host:port

侦听套接字的主机名和端口。 默认为基础操作系统选择的值。 该端口可以省略,在这种情况下,该值应以“:”结尾。

fqdn:0

send_buffer_size=n

用于UDP有效负载的总发送缓冲区大小(以字节为单位)。

Platform value of ACE_DEFAULT_MAX_SOCKET_BUFSIZ

rcv_buffer_size=n

用于UDP有效负载的总接收缓冲区大小(以字节为单位)。

Platform value of ACE_DEFAULT_MAX_SOCKET_BUFSIZ

[IP Multicast Configuration Options]

Option

Description

Default

default_to_ipv6=[0|1]

启用IPv6默认组地址选择。 默认情况下,此选项处于禁用状态。

0

group_address=host:port

要加入以发送/接收数据的多播组。

224.0.0.128:<port>,[FF01::80]:<port>

local_address=address

如果为非空,则为用于加入多播组的本地网络接口的地址。

 

nak_delay_intervals=n

初始nak之后nak之间的间隔数。

4

nak_depth=n

为了service repair requests而保留的数据报数(仅可靠)。

32

nak_interval=msec

两次修复请求之间等待的最小毫秒数(仅可靠)。

500

nak_max=n

The maximum number of times a missing sample will be nak'ed.

3

nak_timeout=msec

放弃维修响应之前要等待的最大毫秒数(仅可靠)。

30000

port_offset=n

未指定组地址时用于设置端口号。 指定组地址后,将使用其中的端口号。 如果未指定组地址,则将端口偏移量用作端口号。 此值不应设置为小于49152。

49152

rcv_buffer_size=n

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

0

reliable=[0|1]

使能可靠的通信

1

syn_backoff=n

握手重试期间使用的指数基; 较小的值会缩短尝试之间的延迟。

2.0

syn_interval=msec

关联期间,等待握手尝试的最小毫秒数。

250

syn_timeout=msec

关联期间,放弃握手响应之前要等待的最大毫秒数。

30000

ttl=n

发送的任何数据报的生存时间(ttl)字段的值。 默认值为1表示所有数据都限于本地网络。

1

async_send=[0|1]

使用异步I / O(在有效支持它的平台上)发送数据报。

 

[RTPS_UDP Configuration Options]

Option

Description

Default

use_multicast=[0|1]

rtps_udp传输可以使用单播或多播。 设置为0(false)时,传输将使用单播,否则,值1(true)将使用多播。

1

multicast_group_address=network address

将传输设置为多播时,这是应使用的多播网络地址。 如果未为网络地址指定端口,则将使用端口7401。

239.255.0.2:7401

multicast_interface=iface

指定此传输实例要使用的网络接口。 这使用特定于平台的格式来标识网络接口。 在Linux系统上,这类似于eth0。如果未配置此值,则使用公共配置值DCPSDefaultAddress来设置多播接口。

The system defaultinterface is used

local_address=addr:port

将套接字绑定到给定的地址和端口。 可以省略端口,但必须在末尾加上“:”。

System default

nak_depth=n

为了service repair requests而保留的数据报数(仅可靠)。

32

nak_response_delay=msec

协议调整参数,允许RTPS Writer针对数据请求延迟否定确认的响应(以毫秒为单位)。

200

heartbeat_period=msec

协议调整参数,以毫秒为单位指定RTPS Writer 公告数据可用性的频率。

1000

heartbeat_response_delay=msec

协议调整参数(以毫秒为单位),允许RTPS Reader延迟发送肯定或否定确认。 此参数用于减少网络风暴的发生。

500

handshake_timeout=msec

关联期间放弃握手响应之前要等待的最大毫秒数。

30000

max_message_size

最大消息大小。 默认值为最大UDP消息大小。

65466

quick_reply_ratio

调整参数,用于控制相对于heartbeat_ period和heartbeat_response_delay的新公告发生速度。

0.1

ttl=n

发送的任何多播数据报的生存时间(ttl)字段的值。 此值指定数据报在被网络丢弃之前将经过的跃点数。 默认值1表示所有数据都限于本地网络子网。

1

DataRtpsRelayAddress=host:port

指定用于RTPS消息的RtpsRelay的地址。

 

RtpsRelayOnly=[0|1]

仅将RTPS消息发送到RtpsRelay(用于调试)。

0

UseRtpsRelay=[0|1]

将消息发送到RtpsRelay。 仅当设置了DataRtpsRelayAddress时,才会发送消息。

0

DataStunServerAddress=host:port

指定使用ICE时,用于RTPS的STUN服务器的地址。

 

UseIce=[0|1]

为此传输实例启用或禁用ICE。

0

[Shared-Memory Transport Configuration Options]

Option

Description

Default

pool_size=bytes

分配的单个共享内存池的大小。

16777216 (16MiB)

datalink_control_size=bytes

为每个数据链路分配的控制区域的大小。 此分配来自pool_size定义的共享内存池

4096 (4 KiB)

 

 

静态配置示例:

配置文件:

[topic/MyTopic]

type_name=TestMsg::TestMsg

 

[endpoint/MyReader]

type=reader

topic=MyTopic

config=MyConfig

domain=34

participant=0123456789ab

entity=cdef01

 

[config/MyConfig]

transports=MyTransport

 

[transport/MyTransport]

transport_type=rtps_udp

use_multicast=0

local_address=1.2.3.4:30000

 

代码:

DDS::DomainParticipantQos dp_qos;

domainParticipantFactory->get_default_participant_qos(dp_qos);

dp_qos.user_data.value.length(6);

dp_qos.user_data.value[0] = 0x01;

dp_qos.user_data.value[1] = 0x23;

dp_qos.user_data.value[2] = 0x45;

dp_qos.user_data.value[3] = 0x67;

dp_qos.user_data.value[4] = 0x89;

dp_qos.user_data.value[5] = 0xab;

 

DDS::DataReaderQos qos;

subscriber->get_default_datareader_qos(qos);

qos.user_data.value.length(3);

qos.user_data.value[0] = 0xcd;

qos.user_data.value[1] = 0xef;

qos.user_data.value[2] = 0x01;

  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
OpenDDS是一种开源的分布式数据服务(DDS)实现,它提供了一种可扩展的、高性能的消息传递机制,用于应用程序之间的通信。下面是OpenDDS配置文件详解OpenDDS配置文件是XML格式的,它描述了DDS系统中的各种实体和它们之间的关系。以下是一些常用的配置文件元素和属性: 1. `<domain>`元素:定义DDS域,它包含一个唯一的标识符和相关的配置信息。 2. `<participant>`元素:定义DDS参与者,它是DDS系统中的一个实体,代表了一个进程或线程。它包含一个唯一的标识符、所属的域、以及相关的配置信息。 3. `<topic>`元素:定义DDS主题,它是DDS系统中的一个实体,代表了一类相关的数据。它包含一个唯一的标识符、所属的域、以及相关的配置信息。 4. `<datawriter>`和`<datareader>`元素:定义DDS数据写入者和数据读取者,它们用于向DDS主题中写入和读取数据。它们包含一个唯一的标识符、所属的参与者、以及相关的配置信息。 5. `<publisher>`和`<subscriber>`元素:定义DDS发布者和订阅者,它们用于将数据写入和读取到DDS系统中。它们包含一个唯一的标识符、所属的参与者、以及相关的配置信息。 在配置文件中,这些元素之间的关系可以通过属性和嵌套关系来描述。例如,一个数据写入者可以通过`<datawriter>`元素的`topic`属性与一个主题相关联,也可以通过`<datawriter>`元素的`publisher`属性与一个发布者相关联。 除了以上元素和属性之外,OpenDDS配置文件还支持一些其他的元素和属性,如QoS(服务质量)配置、安全配置、持久化配置等。这些配置可以帮助用户更好地控制DDS系统的行为和性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值