OpenDDS 配置文件详解
配置文件格式:除了common外,[section type/instance],如[repository/repo_1]
命令行使用配置文件:./publisher -DCPSConfigFile pub.ini
代碼級(jí)別設(shè)置默認(rèn)配置文件: Service_Participant模塊允許DDS客戶端應(yīng)用層代碼級(jí)別去配置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] | 切換內(nèi)置主題支持 | 1 |
| DCPSBitLookupDurationMsec=msec | 檢索給定實(shí)例句柄的BIT數(shù)據(jù)時(shí),框架將等待潛在的內(nèi)置主題信息的最大持續(xù)時(shí)間(以毫秒為單位)。 參與者代碼可以在框架接收并處理相關(guān)的BIT信息之前獲取遠(yuǎn)程實(shí)體的實(shí)例句柄。 框架會(huì)在操作失敗之前等待多長(zhǎng)給定的時(shí)間。 | 2000 |
| DCPSBitTransportIPAddress=addr | 用于標(biāo)識(shí)tcp傳輸內(nèi)置主題的本地接口的IP地址。 注意:此屬性僅適用于DCPSInfoRepo configuration | INADDR_ANY |
| DCPSBitTransportPort=port | 用于標(biāo)識(shí)tcp傳輸內(nèi)置主題的端口。如果使用默認(rèn)值“ 0”,則操作系統(tǒng)來選擇要使用的端口。 注意:此屬性僅適用于DCPSInfoRepo configuration。 | 0 |
| DCPSChunks=n | 當(dāng)RESOURCE_LIMITS QoS值是無窮大時(shí),數(shù)據(jù)寫入者和讀取者的緩存分配器將預(yù)分配的塊的可配置數(shù)量。 當(dāng)所有預(yù)分配的塊都在使用時(shí),OpenDDS從堆中進(jìn)行分配。 | 20 |
| DCPSChunkAssociationMultiplier=n | 與DCPSChunks或resource_limits.max_samples相乘的值,以確定已預(yù)先分配的淺拷貝塊的總數(shù)。 將此值設(shè)置為大于連接數(shù)的值,以使預(yù)分配的塊句柄不會(huì)用完。 寫入多個(gè)數(shù)據(jù)讀取器的樣本不會(huì)被多次復(fù)制,但是該樣本有一個(gè)淺表復(fù)制句柄,用于管理向每個(gè)數(shù)據(jù)讀取器的交付。 句柄的大小很小,因此不需要將此值設(shè)置為接近連接數(shù)。 | 10 |
| DCPSDebugLevel=n | 控制DCPS層打印的調(diào)試信息量的整數(shù)值。 有效值為0到10。 ?0-表示嚴(yán)重錯(cuò)誤的日志,未指示在返回code中(幾乎沒有)。 ?1-每個(gè)進(jìn)程應(yīng)該發(fā)生一次或警告的日志 ?2-每個(gè)DDS實(shí)體應(yīng)該發(fā)生一次的日志 ?4-與管理界面相關(guān)的日志 ?6-每N個(gè)樣本寫入/讀取應(yīng)發(fā)生的日志 ?8-每個(gè)樣本寫入/讀取應(yīng)發(fā)生一次的日志 ?10-每次樣本寫入/讀取可能發(fā)生多次的日志 | 0 |
| DCPSDefaultAddress=addr | 包含local_address的傳輸實(shí)例的local_address主機(jī)部分的默認(rèn)值。 僅在將DCPSDefaultAddress設(shè)置為非空值并且在傳輸中未指定local_address時(shí)應(yīng)用。其他子系統(tǒng)(例如DDSI-RTPS Discovery)也將DCPSDefaultAddress用作默認(rèn)值。 | ? |
| DCPSDefaultDiscovery=[ DEFAULT_REPO| DEFAULT_RTPS| DEFAULT_STATIC| user-defined configuration instance name] | 指定用于未明確配置的任何域的發(fā)現(xiàn)配置。 DEFAULT_REPO轉(zhuǎn)換為使用DCPSInfoRepo。 DEFAULT_RTPS指定使用RTPS進(jìn)行發(fā)現(xiàn)。 DEFAULT_STATIC指定使用靜態(tài)發(fā)現(xiàn)。 | DEFAULT_REPO |
| DCPSGlobalTransportConfig=name | 指定應(yīng)該用作全局配置的傳輸配置的名稱。 所有未指定傳輸配置的實(shí)體都使用此配置。 $ file的特殊值使用的傳輸配置包括配置文件中定義的所有傳輸實(shí)例 | ?? |
| DCPSInfoRepo=objref | 用于查找DCPS信息存儲(chǔ)庫的對(duì)象引用。 這可以是完整的CORBA IOR,也可以是簡(jiǎn)單的host:port字符串。 | file://repo.ior |
| DCPSLivelinessFactor=n | 活動(dòng)性租用期限的百分比,在此百分比之后發(fā)送活動(dòng)性消息。 值80表示從最后檢測(cè)到的心跳消息開始之后延遲減少了20%。 | 80 |
| DCPSMonitor=[0|1] | 使用OpenDDS_monitor庫發(fā)布有關(guān)監(jiān)視主題的數(shù)據(jù) | 0 |
| DCPSPendingTimeout=sec | 數(shù)據(jù)寫入器將阻塞的最大持續(xù)時(shí)間(以秒為單位),以允許刪除未發(fā)送的樣本。 默認(rèn)情況下,此選項(xiàng)會(huì)無限期阻止。 | 0 |
| DCPSPersistentDataDir=path | 文件系統(tǒng)上將存儲(chǔ)持久數(shù)據(jù)的路徑。 如果該目錄不存在,它將自動(dòng)創(chuàng)建。 | OpenDDS-durable-data-dir |
| DCPSPublisherContentFilter=[1|0] | 控制內(nèi)容過濾主題的過濾器表達(dá)式評(píng)估策略。 啟用(1)后,如果所有訂閱者都將忽略這些樣本,則發(fā)布者可以將樣本移交給傳輸之前丟棄任何樣本。 | 1 |
| DCPSSecurity=[0|1] | 僅在啟用DDS安全性的情況下編譯OpenDDS時(shí),此設(shè)置才可用。 如果設(shè)置為1,則啟用DDS Securityframework和內(nèi)置插件。 必須使用特定的QoS策略值來創(chuàng)建使用安全性的每個(gè)域參與者。 | 0 |
| DCPSSecurityDebug=CAT[,CAT...] | 僅在啟用DDS安全性的情況下編譯OpenDDS時(shí),此設(shè)置才可用。 這將按類別控制安全調(diào)試日志記錄的粒度。 | 0 |
| DCPSSecurityDebugLevel=n | 僅在啟用DDS安全性的情況下編譯OpenDDS時(shí),此設(shè)置才可用。 這將按調(diào)試級(jí)別控制安全性調(diào)試日志記錄的粒度。 | N/A |
| DCPSSecurityFakeEncryption=[0|1] | 僅在啟用DDS安全性的情況下編譯OpenDDS時(shí),此設(shè)置才可用。 設(shè)置為1時(shí),此選項(xiàng)禁用所有加密(加密和解密的操作)。 OpenDDS仍會(huì)生成密鑰并執(zhí)行其他安全性簿記,因此該選項(xiàng)通過調(diào)試手動(dòng)檢查所有消息,對(duì)調(diào)試安全性基礎(chǔ)結(jié)構(gòu)很有用。 | 0 |
| pool_size=n_bytes | 安全配置文件存儲(chǔ)池的大小,以字節(jié)為單位。 | 41943040 (40 MiB) |
| pool_granularity=n_bytes | 安全配置文件存儲(chǔ)池的粒度(以字節(jié)為單位)。 必須是8的倍數(shù)。 | 8 |
| Scheduler=[ SCHED_RR| SCHED_FIFO| SCHED_OTHER] | 選擇要使用的線程調(diào)度器。 在大多數(shù)系統(tǒng)上,將調(diào)度程序設(shè)置為默認(rèn)值以外的值需要特權(quán)。 可以設(shè)置SCHED_RR,SCHED_FIFO或SCHED_OTHER的值。 SCHED_OTHER是大多數(shù)系統(tǒng)上的默認(rèn)調(diào)度程序。 | SCHED_OTHER |
| scheduler_slice=usec | 選擇默認(rèn)調(diào)度程序以外的某些調(diào)度程序時(shí),某些操作系統(tǒng)(例如SunOS)需要設(shè)置時(shí)間片值。 對(duì)于那些系統(tǒng),此選項(xiàng)可用于以微秒為單位設(shè)置值。 | None |
| DCPSBidirGIOP=[0|1] | 使用TAO的雙向GIOP功能與DCPSInfoRepo進(jìn)行交互。 啟用BiDir后,可以使用較少的套接字,因?yàn)橄嗤奶捉幼挚捎糜诳蛻舳撕头?wù)器角色。 | 1 |
| DCPSThreadStatusInterval=sec | 使用指定的報(bào)告間隔(以秒為單位)對(duì)內(nèi)部線程狀態(tài)進(jìn)行報(bào)告。 | 0 (disabled) |
?
[Discovery Configuration]
[Domain Configuration]
[domain/*]
| Option | Description | Default |
| DomainId=n | 表示與存儲(chǔ)庫關(guān)聯(lián)的域的整數(shù)值。 | ? |
| DomainRepoKey=k | 映射的存儲(chǔ)庫的鍵值(不推薦使用。為向后兼容而提供)。 | ? |
| DiscoveryConfig=config instance name | 用戶定義的字符串,它引用同一配置文件中[repository]或[rtps_discovery]節(jié)的實(shí)例名稱或內(nèi)部默認(rèn)值之一(DEFAULT_REPO,DEFAULT_RTPS或DEFAULT_STATIC)。 | ? |
| DefaultTransportConfig=config | 用戶定義的字符串,它引用[config]節(jié)的實(shí)例名稱 | ? |
[Multiple repository configuration sections]
[repository/*]
| Option | Description | Default |
| RepositoryIor=ior | 存儲(chǔ)庫IOR或host:port。 | ? |
| RepositoryKey=key | 存儲(chǔ)庫的唯一鍵值。 (不推薦使用。為向后兼容而提供) | ? |
[RTPS Discovery Configuration Options]
[rtps_discovery/*]
| Option | Description | Default |
| ResendPeriod=sec | 參與者公告之間進(jìn)程等待的秒數(shù) | 30 |
| MinResendDelay | 參與者公告之間的最短時(shí)間(以毫秒為單位)。 | 100 |
| QuickResendRatio | 配置本地SDPD重發(fā)的調(diào)整參數(shù)(重發(fā)周期的比率) | 0.1 |
| LeaseDuration=sec | 作為參與者發(fā)送公告的一部分。 它告訴對(duì)等參與者,如果他們?cè)谥付ǖ某掷m(xù)時(shí)間內(nèi)沒有收到該參與者的消息,則可以認(rèn)為該參與者“沒有生命”。 | 300 |
| PB=port | 端口基本號(hào)。 此數(shù)字設(shè)置派生用于簡(jiǎn)單端點(diǎn)發(fā)現(xiàn)協(xié)議(SEDP)的端口號(hào)的起點(diǎn)。 此屬性與DG,PG,D0(或DX)和D1結(jié)合使用,以構(gòu)造用于RTPS發(fā)現(xiàn)通信的必要端點(diǎn)。 | 7400 |
| DG=n | 表示域增益的整數(shù)值。 這是一個(gè)乘法器,有助于為RTPS制定多播或單播端口。 | 250 |
| PG=n | 一個(gè)整數(shù),它有助于配置SPDP 單播端口并用作偏移乘數(shù),因?yàn)槭褂靡韵鹿綖閰⑴c者分配了地址: PB + DG * domainId + d1 + PG * particatorId | 2 |
| D0=n | 一個(gè)整數(shù)值,有助于在SPDP Multicast配置中提供用于計(jì)算可分配端口的偏移量。 使用的公式為: PB + DG * domainId + d0 | 0 |
| D1=n | 一個(gè)整數(shù)值,有助于在SPDP Unicast配置中提供用于計(jì)算可分配端口的偏移量。 使用的公式為: PB + DG * domainId + d1 + PG *particatorId | 10 |
| SedpMaxMessageSize | 設(shè)置最大SEDP消息大小。 默認(rèn)值為最大UDP消息大小。 | 65466 |
| SedpMulticast=[0|1] | 一個(gè)布爾值(0或1),用于確定是否將多播用于SEDP通信。 設(shè)置為1時(shí),使用多播。 設(shè)置為零(0)時(shí),使用SEDP的單播 | 1 |
| SedpLocalAddress=addr:port | 配置傳輸實(shí)例的創(chuàng)建以及通過SEDP綁定到指定的本地地址和端口。 為了保留未指定的端口,可以從設(shè)置中將其省略,但必須在末尾加上:。 | System default address |
| SpdpLocalAddress=addr[:port] | 本地接口的地址,SPDP將使用該地址綁定到該特定接口。 | DCPSDefaultAddress, or IPADDR_ANY |
| DX=n | 一個(gè)整數(shù)值,有助于在SEDP組播配置中提供用于計(jì)算端口的偏移量。 使用的公式為: PB + DG * domainId + dx 僅當(dāng)SedpMulticast = 1時(shí)有效。 | 2 |
| SpdpSendAddrs= [host:port],[host:port]... | host:port對(duì)的列表(用逗號(hào)或空格分隔),用作SPDP內(nèi)容的目標(biāo)。 這可以是單播和多播地址的組合。 | ? |
| MaxSpdpSequenceMsgResetChecks=n | 超過了此數(shù)量的SPDP消息的序列號(hào)之后,刪除發(fā)現(xiàn)的參與者。 | 3 |
| PeriodicDirectedSpdp=[0|1] | 一個(gè)布爾值,它確定是否在每個(gè)重發(fā)周期將定向的SPDP消息發(fā)送給所有參與者。 應(yīng)該為不能使用多播發(fā)送SPDP公告的參與者(例如RtpsRelay)啟用此設(shè)置。 | 0 |
| UndirectedSpdp=[0|1] | 一個(gè)布爾值,它確定是否發(fā)送無向SPDP消息。 對(duì)于無法使用多播發(fā)送SPDP通知的參與者(例如RtpsRelay),應(yīng)禁用此設(shè)置。 | 1 |
| InteropMulticastOverride=group_address | 指定要用于SPDP發(fā)現(xiàn)的多播組的網(wǎng)絡(luò)地址。 這將覆蓋規(guī)范的互操作性組。 例如,它可用于指定路由組地址的使用以提供更大的發(fā)現(xiàn)范圍。 | 239.255.0.1 |
| TTL=n | 作為發(fā)現(xiàn)的一部分發(fā)送的多播數(shù)據(jù)報(bào)的生存時(shí)間(TTL)字段的值。 此值指定數(shù)據(jù)報(bào)在被網(wǎng)絡(luò)丟棄之前將經(jīng)過的躍點(diǎn)數(shù)。 默認(rèn)值1表示所有數(shù)據(jù)都限于本地網(wǎng)絡(luò)子網(wǎng)。 | 1 |
| MulticastInterface=iface | 指定此發(fā)現(xiàn)實(shí)例要使用的網(wǎng)絡(luò)接口。 這使用特定于平臺(tái)的格式來標(biāo)識(shí)網(wǎng)絡(luò)接口。 在Linux系統(tǒng)上,這將類似于eth0。如果未配置此值,則使用通用配置值DCPSDefaultAddress來設(shè)置多播接口 | The system default interface is used |
| GuidInterface=iface | 確定哪個(gè)本地MAC地址應(yīng)出現(xiàn)在由此節(jié)點(diǎn)生成的GUID中時(shí)要使用的網(wǎng)絡(luò)接口。 | The system / ACE library default is used |
| SpdpRtpsRelayAddress=host:port | 指定用于SPDP消息的RtpsRelay的地址。 | ? |
| SpdpRtpsRelaySendPeriod=period | 指定發(fā)送到RtpsRelay的SPDP公告之間的間隔。 | 30 s |
| SedpRtpsRelayAddress=host:port | 指定用于SEDP消息的RtpsRelay的地址。 | ? |
| RtpsRelayOnly=[0|1] | 僅將RTPS消息發(fā)送到RtpsRelay(用于調(diào)試)。 | 0 |
| UseRtpsRelay=[0|1] | 將消息發(fā)送到RtpsRelay。 僅當(dāng)設(shè)置了SpdpRtpsRelayAddress和/或SedpRtpsRelayAddress時(shí),才會(huì)發(fā)送消息。 | 0 |
| SpdpStunServerAddress=host:port | SPDP使用ICE時(shí),指定STUN服務(wù)器的地址。 | ? |
| SedpStunServerAddress=host:port | SEDP使用ICE時(shí),指定STUN服務(wù)器的地址。 | ? |
| UseIce=[0|1] | 為SPDP和SEDP啟用或禁用ICE。 | 0 |
| IceTa=milliseconds | ICE發(fā)送之間的最小間隔。 | 50 ms |
| IceConnectivityCheckTTL=seconds | 連接檢查的最大持續(xù)時(shí)間。 | 300 s |
| IceChecklistPeriod=seconds | 嘗試在此時(shí)間內(nèi)循環(huán)進(jìn)行候選人的所有連接檢查。 | 10 |
| IceIndicationPeriod=seconds | 通過此周期向?qū)Φ润w發(fā)送STUN指示以維護(hù)NAT綁定。 | 15 |
| IceNominatedTTL=seconds | 如果在此時(shí)間內(nèi)未收到指示,請(qǐng)忽視有效的候選人。 | 300 |
| IceServerReflexiveAddressPeriod=seconds | 通過此周期將消息發(fā)送到STUN服務(wù)器。 | 30 |
| IceServerReflexiveIndicationCount=integer | 在向STUN服務(wù)器發(fā)送新的綁定請(qǐng)求之前,發(fā)送一些指示。 | 10 |
| IceDeferredTriggeredCheckTTL=seconds | 在這段時(shí)間后,清除延遲的檢查。 | 300 s |
| IceChangePasswordPeriod=seconds | 在這段時(shí)間后,更改ICE密碼。 | 300 s |
| MaxAuthTime=seconds | 設(shè)置使用DDS安全性進(jìn)行身份驗(yàn)證的最長(zhǎng)時(shí)間。 | 300 s |
| AuthResendPeriod=seconds | 在這段時(shí)間后重新發(fā)送身份驗(yàn)證消息。 | 1 s |
| SecureParticipantUserData=[0|1] | 如果啟用了DDS安全性,則從不安全的發(fā)現(xiàn)消息中將省略參與者的USER_DATA QoS。 | 0 |
| UseXTypes=[0|1] | 啟用XTypes規(guī)范中的發(fā)現(xiàn)擴(kuò)展。 參與者使用類型查找服務(wù)交換端點(diǎn)公告中的頂級(jí)類型信息和擴(kuò)展類型信息。 | 1 |
| TypeLookupServiceReplyTimeout=milliseconds | 如果將請(qǐng)求發(fā)送到對(duì)等方的“類型查找服務(wù)”(請(qǐng)參見上面的UseXTypes),請(qǐng)?jiān)诖似陂g內(nèi)等待答復(fù)。 | 5 seconds |
?
[Configuring For Static Discovery] *當(dāng)前靜態(tài)發(fā)現(xiàn)只能使用rtps_udp傳輸
[topic/*] Configuration Options
| Option | Description | Default |
| name=string | topic的名稱 | Instance nameof section |
| type_name=string | 唯一定義樣本類型的標(biāo)識(shí)符。 這通常是CORBA接口存儲(chǔ)庫類型名稱。 | 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 | 端點(diǎn)的域ID,范圍為0-231。 用于形成端點(diǎn)的GUID。 | Required |
| participant=hexstring | 12個(gè)十六進(jìn)制數(shù)字的字符串。 用于形成端點(diǎn)的GUID。 具有相同域/參與者組合的所有端點(diǎn)應(yīng)處于同一進(jìn)程中。 | Required |
| entity=hexstring | 6個(gè)十六進(jìn)制數(shù)字的字符串。 用于形成端點(diǎn)的GUID。 域/參與者/實(shí)體的組合應(yīng)該是唯一的。 | Required |
| type=[reader|writer] | 確定實(shí)體是數(shù)據(jù)讀取器還是數(shù)據(jù)寫入器。 | 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 / *]節(jié)中的傳輸配置。 這用于確定端點(diǎn)的網(wǎng)絡(luò)地址。 | ? |
?
[Transport Configuration]
[Transport Configuration Options]
[transport/*]
| Option | Description | Default |
| Transports=inst1[,inst2][,...] | 此配置將使用的傳輸實(shí)例名稱的有序列表。 每個(gè)傳輸配置都需要此字段。 | none |
| swap_bytes=[0|1] | 值為0會(huì)使DDS以源計(jì)算機(jī)的本機(jī)字節(jié)序?qū)?shù)據(jù)進(jìn)行序列化; 值為1會(huì)使DDS以相反的字節(jié)序?qū)?shù)據(jù)進(jìn)行序列化。 接收方將調(diào)整數(shù)據(jù)的字節(jié)序,因此無需在機(jī)器之間匹配此選項(xiàng)。 此選項(xiàng)的目的是允許開發(fā)人員確定在必要時(shí)進(jìn)行哪一方進(jìn)行字節(jié)順序調(diào)整。 | 0 |
| passive_connect_duration=msec | 初始被動(dòng)連接建立的超時(shí)(毫秒)。 默認(rèn)情況下,此選項(xiàng)等待十秒鐘。 零值將無限期等待(不建議)。 | 10000 |
[Common Transport Configuration Options]
| Option | Description | Default |
| transport_type=transport | 傳輸類型; 可以通過傳輸框架以編程方式擴(kuò)展可用傳輸?shù)牧斜怼?tcp,udp,multicast,shmem和rtps_udp包含在OpenDDS中。 | none |
| queue_messages_per_pool=n | 當(dāng)檢測(cè)到backpressure時(shí),消息發(fā)送將要排隊(duì)。 當(dāng)消息隊(duì)列必須增長(zhǎng)時(shí),它將以該數(shù)字增長(zhǎng)。 | 10 |
| queue_initial_pools=n | backpressure隊(duì)列的初始池?cái)?shù)。 兩個(gè)backpressure隊(duì)列值的默認(rèn)設(shè)置為50個(gè)消息(5個(gè)10個(gè)消息的池)預(yù)分配了空間。 | 5 |
| max_packet_size=n | 傳輸數(shù)據(jù)包的最大大小,包括其傳輸標(biāo)頭,樣本標(biāo)頭和樣本數(shù)據(jù)。 | 2147481599 |
| max_samples_per_packet=n | 傳輸數(shù)據(jù)包中的最大樣本數(shù)。 | 10 |
| optimum_packet_size=n | 即使仍然有排隊(duì)的樣本要發(fā)送,大于此大小的傳輸數(shù)據(jù)包也會(huì)通過電纜發(fā)送。 該值可能會(huì)影響性能,具體取決于您的網(wǎng)絡(luò)配置和應(yīng)用程序性質(zhì)。 | 4096 (4 KiB) |
| thread_per_connection= [0|1] | 啟用或禁用每個(gè)連接發(fā)送策略的線程。 默認(rèn)情況下,此選項(xiàng)處于禁用狀態(tài)。 | 0 |
| datalink_release_delay=msec | datalink_release_delay是沒有關(guān)聯(lián)后數(shù)據(jù)鏈路釋放的延遲(以毫秒為單位)。 增加此值可能會(huì)減少在頻繁添加和刪除讀取器/寫入器關(guān)聯(lián)時(shí)重新建立的開銷。 | 10000 |
[TCP/IP Configuration Options]
| Option | Description | Default |
| active_conn_timeout_period=msec | 活動(dòng)連接側(cè)等待建立連接的時(shí)間段(毫秒)。 如果在此期間未連接,則將調(diào)用on_publication_lost()回調(diào)。 | 5000 |
| conn_retry_attempts=n | 丟棄并調(diào)用on_publication_lost()和on_subscription_lost()回調(diào)之前的重新連接嘗試次數(shù)。 | 3 |
| conn_retry_initial_delay=msec | 嘗試重新連接的初始延遲(毫秒)。 假設(shè)檢測(cè)到丟失的連接,則嘗試重新連接。 如果此重新連接失敗,則在此指定的延遲后進(jìn)行第二次嘗試。 | 500 |
| conn_retry_backoff_multiplier=n | 重新連接嘗試的退避乘數(shù)。 在上述初始延遲之后,后續(xù)延遲由該乘數(shù)與先前延遲的乘積確定。 例如,如果conn_retry_initial_delay為500,conn_retry_backoff_multiplier為1.5,則第二次重新連接嘗試將在第一次重試連接失敗后的0.5秒內(nèi)進(jìn)行; 第三次嘗試將在第二次重試連接失敗后的0.75秒內(nèi)進(jìn)行; 第三次嘗試將在第三次重試連接失敗后的1.125秒內(nèi)進(jìn)行。 | 2.0 |
| enable_nagle_algorithm=[0|1] | 啟用或禁用Nagle的算法。 默認(rèn)情況下,它是禁用的。 啟用Nagle的算法可能會(huì)增加吞吐量,但會(huì)增加延遲。 | 0 |
| local_address=host:port | 連接接受器的主機(jī)名和端口。 默認(rèn)值為FQDN和端口0,這意味著操作系統(tǒng)將選擇該端口。 如果僅指定了主機(jī),但省略了端口號(hào),則主機(jī)說明符上仍需要“:”。 | fqdn:0 |
| max_output_pause_period=msec | 排隊(duì)中消息無法發(fā)送時(shí)的最長(zhǎng)時(shí)間(毫秒)。 如果有樣本在排隊(duì)沒有輸出,并超過此時(shí)間段,則連接將關(guān)閉,并且將調(diào)用on_*_lost()回調(diào)。 默認(rèn)值為零表示不進(jìn)行此檢查。 | 0 |
| passive_reconnect_duration=msec | 被動(dòng)連接端等待連接重新連接的時(shí)間段(毫秒)。 如果在這段時(shí)間內(nèi)未重新連接,則將調(diào)用on _ * _ lost()回調(diào)。 | 2000 |
| pub_address=host:port | 用配置的字符串覆蓋發(fā)送給對(duì)等方的地址。 這可用于防火墻穿越和其他高級(jí)網(wǎng)絡(luò)配置。 | ? |
[UDP/IP Configuration Options]
| Option | Description | Default |
| local_address=host:port | 偵聽套接字的主機(jī)名和端口。 默認(rèn)為基礎(chǔ)操作系統(tǒng)選擇的值。 該端口可以省略,在這種情況下,該值應(yīng)以“:”結(jié)尾。 | fqdn:0 |
| send_buffer_size=n | 用于UDP有效負(fù)載的總發(fā)送緩沖區(qū)大小(以字節(jié)為單位)。 | Platform value of ACE_DEFAULT_MAX_SOCKET_BUFSIZ |
| rcv_buffer_size=n | 用于UDP有效負(fù)載的總接收緩沖區(qū)大小(以字節(jié)為單位)。 | Platform value of ACE_DEFAULT_MAX_SOCKET_BUFSIZ |
[IP Multicast Configuration Options]
| Option | Description | Default |
| default_to_ipv6=[0|1] | 啟用IPv6默認(rèn)組地址選擇。 默認(rèn)情況下,此選項(xiàng)處于禁用狀態(tài)。 | 0 |
| group_address=host:port | 要加入以發(fā)送/接收數(shù)據(jù)的多播組。 | 224.0.0.128:<port>,[FF01::80]:<port> |
| local_address=address | 如果為非空,則為用于加入多播組的本地網(wǎng)絡(luò)接口的地址。 | ? |
| nak_delay_intervals=n | 初始nak之后nak之間的間隔數(shù)。 | 4 |
| nak_depth=n | 為了service repair requests而保留的數(shù)據(jù)報(bào)數(shù)(僅可靠)。 | 32 |
| nak_interval=msec | 兩次修復(fù)請(qǐng)求之間等待的最小毫秒數(shù)(僅可靠)。 | 500 |
| nak_max=n | The maximum number of times a missing sample will be nak'ed. | 3 |
| nak_timeout=msec | 放棄維修響應(yīng)之前要等待的最大毫秒數(shù)(僅可靠)。 | 30000 |
| port_offset=n | 未指定組地址時(shí)用于設(shè)置端口號(hào)。 指定組地址后,將使用其中的端口號(hào)。 如果未指定組地址,則將端口偏移量用作端口號(hào)。 此值不應(yīng)設(shè)置為小于49152。 | 49152 |
| rcv_buffer_size=n | 套接字接收緩沖區(qū)的大小(以字節(jié)為單位)。 零值表示使用系統(tǒng)默認(rèn)值。 | 0 |
| reliable=[0|1] | 使能可靠的通信 | 1 |
| syn_backoff=n | 握手重試期間使用的指數(shù)基; 較小的值會(huì)縮短嘗試之間的延遲。 | 2.0 |
| syn_interval=msec | 關(guān)聯(lián)期間,等待握手嘗試的最小毫秒數(shù)。 | 250 |
| syn_timeout=msec | 關(guān)聯(lián)期間,放棄握手響應(yīng)之前要等待的最大毫秒數(shù)。 | 30000 |
| ttl=n | 發(fā)送的任何數(shù)據(jù)報(bào)的生存時(shí)間(ttl)字段的值。 默認(rèn)值為1表示所有數(shù)據(jù)都限于本地網(wǎng)絡(luò)。 | 1 |
| async_send=[0|1] | 使用異步I / O(在有效支持它的平臺(tái)上)發(fā)送數(shù)據(jù)報(bào)。 | ? |
[RTPS_UDP Configuration Options]
| Option | Description | Default |
| use_multicast=[0|1] | rtps_udp傳輸可以使用單播或多播。 設(shè)置為0(false)時(shí),傳輸將使用單播,否則,值1(true)將使用多播。 | 1 |
| multicast_group_address=network address | 將傳輸設(shè)置為多播時(shí),這是應(yīng)使用的多播網(wǎng)絡(luò)地址。 如果未為網(wǎng)絡(luò)地址指定端口,則將使用端口7401。 | 239.255.0.2:7401 |
| multicast_interface=iface | 指定此傳輸實(shí)例要使用的網(wǎng)絡(luò)接口。 這使用特定于平臺(tái)的格式來標(biāo)識(shí)網(wǎng)絡(luò)接口。 在Linux系統(tǒng)上,這類似于eth0。如果未配置此值,則使用公共配置值DCPSDefaultAddress來設(shè)置多播接口。 | The system defaultinterface is used |
| local_address=addr:port | 將套接字綁定到給定的地址和端口。 可以省略端口,但必須在末尾加上“:”。 | System default |
| nak_depth=n | 為了service repair requests而保留的數(shù)據(jù)報(bào)數(shù)(僅可靠)。 | 32 |
| nak_response_delay=msec | 協(xié)議調(diào)整參數(shù),允許RTPS Writer針對(duì)數(shù)據(jù)請(qǐng)求延遲否定確認(rèn)的響應(yīng)(以毫秒為單位)。 | 200 |
| heartbeat_period=msec | 協(xié)議調(diào)整參數(shù),以毫秒為單位指定RTPS Writer 公告數(shù)據(jù)可用性的頻率。 | 1000 |
| heartbeat_response_delay=msec | 協(xié)議調(diào)整參數(shù)(以毫秒為單位),允許RTPS Reader延遲發(fā)送肯定或否定確認(rèn)。 此參數(shù)用于減少網(wǎng)絡(luò)風(fēng)暴的發(fā)生。 | 500 |
| handshake_timeout=msec | 關(guān)聯(lián)期間放棄握手響應(yīng)之前要等待的最大毫秒數(shù)。 | 30000 |
| max_message_size | 最大消息大小。 默認(rèn)值為最大UDP消息大小。 | 65466 |
| quick_reply_ratio | 調(diào)整參數(shù),用于控制相對(duì)于heartbeat_ period和heartbeat_response_delay的新公告發(fā)生速度。 | 0.1 |
| ttl=n | 發(fā)送的任何多播數(shù)據(jù)報(bào)的生存時(shí)間(ttl)字段的值。 此值指定數(shù)據(jù)報(bào)在被網(wǎng)絡(luò)丟棄之前將經(jīng)過的躍點(diǎn)數(shù)。 默認(rèn)值1表示所有數(shù)據(jù)都限于本地網(wǎng)絡(luò)子網(wǎng)。 | 1 |
| DataRtpsRelayAddress=host:port | 指定用于RTPS消息的RtpsRelay的地址。 | ? |
| RtpsRelayOnly=[0|1] | 僅將RTPS消息發(fā)送到RtpsRelay(用于調(diào)試)。 | 0 |
| UseRtpsRelay=[0|1] | 將消息發(fā)送到RtpsRelay。 僅當(dāng)設(shè)置了DataRtpsRelayAddress時(shí),才會(huì)發(fā)送消息。 | 0 |
| DataStunServerAddress=host:port | 指定使用ICE時(shí),用于RTPS的STUN服務(wù)器的地址。 | ? |
| UseIce=[0|1] | 為此傳輸實(shí)例啟用或禁用ICE。 | 0 |
[Shared-Memory Transport Configuration Options]
| Option | Description | Default |
| pool_size=bytes | 分配的單個(gè)共享內(nèi)存池的大小。 | 16777216 (16MiB) |
| datalink_control_size=bytes | 為每個(gè)數(shù)據(jù)鏈路分配的控制區(qū)域的大小。 此分配來自pool_size定義的共享內(nèi)存池 | 4096 (4 KiB) |
?
?
靜態(tài)配置示例:
配置文件:
[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;
總結(jié)
以上是生活随笔為你收集整理的OpenDDS 配置文件详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【TSP问题】基于人工鱼群算法求解TSP
- 下一篇: Servlet3.0学习总结(四)——使