6.4.1.4. opendds配置选项
配置文件应用示例
./publisher -DCPSConfigFile pub.ini
指令参数将在domain participant factor初始化时传递.
#include <dds/DCPS/Server_Participant.h>
int main(int argc, char* argv[])
{
    DDS::DomainParticipantFactory_var dpf = TheParticipantFactoryWithArgs(argc, argv);
}
配置文件内容示例
[conmon]
DCPSDebugLevel=0
DCPSInfoRepo=localhost:12345
DCPSLivelinessFactory=80
DCPSChunks=20
DCPSChunksAssociationMultiplier=10
DCPSBitLookupDurationMesc=2000
DCPSPendingTimeout=30
6.4.1.4.1. Global Setting
6.4.1.4.1.1. [common]
配置选项  | 
描述  | 
默认值  | 
DCPSBit=[1|0]  | 
切换内置主题支持  | 
1  | 
DCPSBItLookupDurationMsec=msec  | 
解读当前实例所给出的topic的最长持续时间  | 
2000ms  | 
DCPSBitTransportIPAddress=addr  | 
设定tcp传输的ip地址, 只对DCPSInfoRepo设定有效  | 
INADDR_ANY  | 
DCPSBitTransportPort=port  | 
TCP传输中端口号设定,如果使用默认值0,则操作系统来选择要使用的端口,只对DCPSInfoRepo设定有效  | 
0  | 
DCPSChunks=n  | 
当RESOURCE_LIMITS Qos值为无穷大时,数据写入者和读取者的缓存分配器将预分配的块的可配置数量.当所 有预分配的块都在使用时,opendds从堆中进行分配  | 
20  | 
DCPSChunkAssociationMultiplier=n  | 
与DCPSChunks或resource_limits.max_samples相乘的值,以确定已预先分配的浅拷贝块的总数.  | 
10  | 
DCPSDebugLevel=n  | 
控制DCPS层打印的调试信息量的整数值.有效值0-10.  | 
0  | 
DCPSDefaultAddress=addr  | 
||
DCPSDefaultDiscovery=[]  | 
指定用于未明确配置的任何域的发现配置.可选值为DEFAULT_REPO|DEFAULT_REPS|DEFAULT_STATIC  | 
DEFAULT_REPO  | 
DCPSGlobalTransportConfig=name  | 
设置应该用作全局配置的传输配置的名称  | 
|
DCPSInfoRepo=objref  | 
用于查找DCPS信息存储库的对象引用,可以是完整的CORBA IOR也可以是简单的host: port字符串  | 
|
DCPSLivelinessFactory=n  | 
||
DCPSMonitor=[0|1]  | 
使用OpenDDS_Monitor库发布有关监视主题的数据  | 
0  | 
DCPSPendingTimeout=sec  | 
数据写入器将阻塞的最大持续时间(以秒为单位)  | 
0  | 
DCPSPersistentDataDir=path  | 
文件系统上将存储持久数据的路径,如果不存在将自动创建  | 
|
DCPSPublisherContentFilter=[1|0]  | 
控制内容过滤主题的过滤器表达式评估策略,启用后,如果所有订阅者都将忽略这些样本,则发布者可以将样 本移交给传输之前丢弃样本  | 
1  | 
DCPSSecurity=[0|1]  | 
仅在启用dds安全性的情况下编译opendds时,此配置才有效  | 
0  | 
pool_size=n_bytes  | 
安全配置文件存储池的大小,以字节为单位  | 
41943040(40 MiB)  | 
pool_granularity=n_bytes  | 
安全配置文件存储池的粒度(以字节为单位),必须是8的倍数  | 
8  | 
Scheduler=[]  | 
选择要使用的线程调度器,可选值SCHED_RR|SCHED_FIFO|SCHED_OTHER  | 
SCHED_OTHER  | 
scheduler_slice=usec  | 
某些操作系统需要设置时间片  | 
|
DCPSBidirGIOP=[0|1]  | 
使用TAO的双向GIOP功能与DCPSInfoRepo进行交互  | 
1  | 
6.4.1.4.2. Discovery
6.4.1.4.2.1. [domain/*]
配置选项  | 
描述  | 
默认值  | 
DomainId=n  | 
表示与存储库关联的域的整数值  | 
|
DomainRepoKey=k  | 
映射的存储库的键值(不推荐使用)  | 
|
DiscoveryConfig=name  | 
用户定义的字符串,它引用同一配置文件中[repository]或[rtps_discovery]节的实例名称  | 
|
DefaultTransportConfig=config  | 
用户定义的字符串,它引用[config]节的实例名称  | 
6.4.1.4.2.2. [repository/*]
配置选项  | 
描述  | 
默认值  | 
Repositorylor=ior  | 
存储库IOR或host: port  | 
|
RepositoryKey=key  | 
存储库的唯一键值(不推荐使用,为向后兼容而提供)  | 
6.4.1.4.2.3. [rtps_discovery/*]
配置选项  | 
描述  | 
默认值  | 
ResendPeriod=sec  | 
参与者公告之间进程等待的秒数  | 
30  | 
MinResendDelay=msec  | 
参与者公告之间的最短时间(以毫秒为单位)  | 
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*dimainid+d1+PG*particatorid  | 
2  | 
D0=n  | 
SPDP Multicast配置中提供用于计算可分配端口的偏移量,公式为PB+DG*domainid+d0  | 
0  | 
D1=n  | 
SPDP Unicast配置中提供用于计算可分配端口的偏移量,公式PB+DG*dimainid+d1+PG*particatorid  | 
10  | 
SedpMaxMessageSize  | 
设置SEDP消息大小,默认值为最大UDP消息大小  | 
65466  | 
SedpMulticast=[0|1]  | 
设置是否将多播用于SEDP通信,1为多播  | 
1  | 
SedpLocalAddress=addr:port  | 
配置SEDP绑定的本地地址和端口  | 
6.4.1.4.3. Static Discovery
6.4.1.4.3.1. [endpoint/*]
配置选项  | 
描述  | 
默认值  | 
domain=numeric  | 
端点的域ID,范围为0-231,用于形成端点的GUID  | 
|
participant=hexstring  | 
12个十六进制数字的字符串,用于形成端点的GUID  | 
|
entity=hexstring  | 
6个十六进制数字的字符串,用于形成端点GUID  | 
|
type=[reader|writer]  | 
确定实体是数据读取器还是写入器  | 
|
topic=name  | 
||
datawriterqos=name  | 
||
datareaderqos=name  | 
||
publisherqos=name  | 
||
subscriberqos=name  | 
||
config  | 
6.4.1.4.3.2. [topic/*]
配置选项  | 
描述  | 
默认值  | 
name=string  | 
topic的名称  | 
|
type_name=string  | 
唯一定义topic类型的标识符,通常是CORBA接口存储库类型名称  | 
Required  | 
6.4.1.4.3.3. [datawriterqos/*]
配置选项  | 
描述  | 
默认值  | 
6.4.1.4.3.4. [datareaderqos/*]
配置选项  | 
描述  | 
默认值  | 
6.4.1.4.3.5. [publisherqos/*]
配置选项  | 
描述  | 
默认值  | 
6.4.1.4.3.6. [subscriberqos/*]
配置选项  | 
描述  | 
默认值  | 
6.4.1.4.4. [Transport/*]
配置选项  | 
描述  | 
默认值  | 
Transport=inst1[,inst2][,…]  | 
此配置将使用的  | 
|
swap_bytes=[0|1]  | 
值为0时dds以源计算机的本机字节序对数据进行序列化  | 
0  | 
passive_connect_duration=msec  | 
初始被动连接建立的超时(毫秒)  | 
10000  | 
6.4.1.4.4.1. [Common Transport Configuration Options]
配置选项  | 
描述  | 
默认值  | 
transport_type=transport  | 
传输类型,tcp, udp, multicast, shmem, rtps_udp等  | 
|
queue_messages_per_pool=n  | 
当检测到backpressure时,消息发送将要排队,当队列必须增长时,它将以该数字增长  | 
10  | 
queue_initial_pools=n  | 
backpressure队列的初始池数  | 
5  | 
max_packet_size=n  | 
传输数据包的最大大小  | 
2147481599  | 
max_samples_per_packet=n  | 
传输数据包中的最大样本数  | 
10  | 
optimum_packet_size=n  | 
即使仍然有排队的样本要发送,大于此大小的传输数据包也会发送  | 
4096(4k)  | 
thread_per_connection=[0|1]  | 
启用或禁用每个连接发送策略的线程  | 
0  | 
datalink_release_delay=msec  | 
设置没有关联后数据链路释放的延迟  | 
10000  | 
6.4.1.4.4.2. [TCP/IP Configuration Options]
配置选项  | 
描述  | 
默认值  | 
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  | 
尝试重新连接的退避乘数  | 
2  | 
enable_nagle_algorithm=[0|1]  | 
启用或禁用Nagle算法,启用Nagle算法会增加吞吐量,但会增加延迟  | 
0  | 
local_address=host:port  | 
连接接收器的主机名和端口  | 
fqdn:0  | 
max_output_pause_period=msec  | 
排队中消息无法发送的最长时间(毫秒)  | 
0  | 
passive_reconnect_duration=msec  | 
被动连接端等待重新连接的时间段  | 
2000  | 
pub_address=host:port  | 
用配置的字符串覆盖发送给对等方的地址,可用于防火墙穿透和其他高级网络配置  | 
6.4.1.4.4.3. [UDP/IP Configuration Options]
配置选项  | 
描述  | 
默认值  | 
local_address=host:port  | 
监听套接字的主机名和端口  | 
fqdn:0  | 
send_buffer_size=n  | 
用于UDP有效负载的总发送缓冲区大小(以字节为单位)  | 
|
rcv_buffer_size=n  | 
用于UDP有效负载的总接收缓冲区大小(以字节为单位)  | 
6.4.1.4.4.4. [IP Multicast Configuration Options]
配置选项  | 
描述  | 
默认值  | 
default_to_ipv6=[0|1]  | 
启用IPV6默认组地址选择  | 
0  | 
group_address=host:port  | 
要加入发送/接收数据的多播组  | 
224.0.0.128:<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  | 
||
nak_timeout=msec  | 
放弃维修响应之前等待时间  | 
30000  | 
port_offset=n  | 
未指定组地址时用于设置端口号,此值不应设置为小于49152  | 
49152  | 
rcv_buffer_size=n  | 
socket接收缓冲区大小,0使用系统默认值  | 
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发送数据报  | 
6.4.1.4.4.5. [RTPS_UDP Configuration Options]
配置选项  | 
描述  | 
默认值  | 
use_multicast=[0|1]  | 
rtps_udp传输可以使用单播或多播,默认使用多播  | 
1  | 
multicast_group_address=address  | 
传输设置为多播时,应使用多播网络地址.如果未指定网络端口号,则使用7401  | 
239.255.0.2:7401  | 
multicast_interface=iface  | 
指定传输实例要使用的网络接口,linux系统中可以使用eth0  | 
|
local_address=addr:port  | 
指定地址和端口  | 
|
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  | 
发送的任何多播数据报的生存时间  | 
1  | 
DataRtpsRelayAddress=host:port  | 
指定用于rtps消息的rtpsrelay地址  | 
|
RtpsRelayOnly=[0|1]  | 
仅将消息发送到rtpsrelay(用于调试)  | 
0  |