opensplice通信機能の利用
#contents
Vortex OpenspliceはADLINK社が開発しているOMG DDS 1.4、DDSI-RTPS 2.3仕様の通信ミドルウェアです。
-
[Data Distribution Service Vortex OpenSplice ADLINK](https://www.adlinktech.com/jp/vortex-opensplice-data-distribution-service)
以下ではOpenRTM-aistのOpenSpliceプラグインのインストール、使用手順を説明します。
C++版
Windows
OpenSpliceの入手
以下からOpenSpliceをダウンロードして適当な場所に展開してください。
RapidXmlの入手
以下からRapidXmlをダウンロードして適当な場所に展開してください。
展開したら新たにrapidxmlフォルダを作成してヘッダーファイル(.hpp)をそこに移動させてください。 この時、展開したパスは以下のようになっています。
rapidxml-1.13
- rapidxml
| - rapidxml.hpp
| - rapidxml_iterators.hpp
| - rapidxml_print.hpp
| - rapidxml_utils.hpp
OpenRTM-aistのビルド
OpenRTM-aistをビルドする前に、OpenSpliceのrelease.batを実行します。
%OpenSplice_DIR%\x86.win32\release.bat
CMake実行時にOPENSPLICE_ENABLEオプションをONに設定し、RAPIDXML_DIRオプションにRapidXmlを展開したパスを指定します。
cmake -DORB_ROOT=C:/workspace/omniORB-4.2.3-win64-vc16 -G "Visual Studio 16 2019" -DOPENSPLICE_ENABLE=ON -DRAPIDXML_DIR=%RAPIDXML_DIR% ..
その他の手順は通常と同じです。
適当な場所にインストールしてください。
インストールするディレクトリはCMAKE_INSTALL_PREFIXのオプションで設定します。
cmake .. -DCMAKE_INSTALL_PREFIX=C:/workspace/OpenRTM-aist/build/install
cmake --build . --config Release --target install
動作確認
{インストールしたパス}\2.0.0\Components\C++\Examples\vc16のサンプルコンポーネントを実行します。 RTC起動前にOpenSpliceのrelease.batを実行してください。
以下の内容のrtc.confを作成してください。
manager.modules.load_path: {インストールしたパス}\\2.0.0\\ext\\transport
manager.modules.preload: OpenSpliceTransport.dll
manager.components.preconnect: ConsoleOut0.in?interface_type=opensplice, ConsoleIn0.out?interface_type=opensplice
manager.components.preactivation: ConsoleOut0, ConsoleIn0
まずOpenSpliceTransport.dllのロードが必要になります。 この設定はmanager.modules.preloadのオプションで設定できます。
次にコネクタ生成時にインターフェース型をopenspliceに設定する必要があります。 コネクタの生成はmanager.components.preconnectオプションにより設定します。 この例ではConsoleOut0コンポーネントのinのポート、ConsoleIn0コンポーネントのoutのポートにそれぞれコネクタを生成しています。
ConsoleInComp.exe、ConsoleOutComp.exeを実行すると通信ができるようになります。
Ubuntu
OpenSpliceの入手
以下からOpenSpliceをダウンロードして適当な場所に展開してください。
- https://github.com/ADLINK-IST/opensplice/releases
wget https://github.com/ADLINK-IST/opensplice/releases/download/OSPL_V6_9_210323OSS_RELEASE/PXXX-VortexOpenSplice-6.9.210323OSS-HDE-x86_64.linux-gcc7-glibc2.27-installer.tar
tar xf PXXX-VortexOpenSplice-6.9.210323OSS-HDE-x86_64.linux-gcc7-glibc2.27-installer.tar
RapidXmlのインストール
以下のコマンドでRapidXmlをインストールしてください。
sudo apt install librapidxml-dev
OpenRTM-aistのビルド
OpenRTM-aistをビルドする前に、OpenSpliceのrelease.comを実行します。
source ${OPENSPLICE_DIR}/x86_64.linux/release.com
CMake実行時にOPENSPLICE_ENABLEオプションをONに設定します。
cmake -DOPENSPLICE_ENABLE=ON ..
その他の手順は通常と同じです。
適当な場所にインストールしてください。
インストールするディレクトリはCMAKE_INSTALL_PREFIXのオプションで設定します。
cmake .. -DCMAKE_INSTALL_PREFIX=~/workspace/OpenRTM-aist/build/install
cmake --build . --config Release --target install
動作確認
{インストールしたパス}/share/openrtm-2.0/components/c++/examplesのサンプルコンポーネントを実行します。 RTC起動前にOpenSpliceのrelease.comを実行してください。
以下の内容のrtc.confを作成してください。
manager.modules.load_path: {インストールしたパス}/lib/openrtm-2.0
manager.modules.preload: OpenSpliceTransport.so
manager.components.preconnect: ConsoleOut0.in?interface_type=opensplice, ConsoleIn0.out?interface_type=opensplice
manager.components.preactivation: ConsoleOut0, ConsoleIn0
まずOpenSpliceTransport.soのロードが必要になります。 この設定はmanager.modules.preloadのオプションで設定できます。
次にコネクタ生成時にインターフェース型をopenspliceに設定する必要があります。 コネクタの生成はmanager.components.preconnectオプションにより設定します。 この例ではConsoleOut0コンポーネントのinのポート、ConsoleIn0コンポーネントのoutのポートにそれぞれコネクタを生成しています。
ConsoleInComp、ConsoleOutCompを実行すると通信ができるようになります。
Python版
Windows
OpenSpliceのインストール
まずはOpenSpliceのPythonラッパーライブラリをインストールする必要があります。
適当な場所にビルド済みのOpenSpliceを展開してください。
- https://github.com/ADLINK-IST/opensplice/releases
次に展開したフォルダのHDE\x86_64.win64\tools\python\srcで以下のコマンドを実行するとインストールされます。
{OpenSpliceを展開したディレクトリ}\HDE\x86_64.win64\release.bat
python setup.py build
python setup.py install
Cythonをインストールしていない場合は以下のコマンドを実行してください。
pip install cython
※上記のsetup.pyによるビルドにはPythonをビルドしたVisual Studioと同じバージョンのVisual Studioがインストールされている必要があります。 Python 2.7ではVisual Studio 2008、Python 3.7ではVisual Studio 2017が必要になります。
OpenRTM-aistのインストール
OpenRTM-aist 1.2等をインストーラーでインストールしておいてください。 OpenRTM-aist Python版のソースコードを入手してください。
- https://github.com/OpenRTM/OpenRTM-aist-Python
以下のコマンドでOpenRTM-aist Python版をインストールしてください。
python setup.py build
python setup.py install
動作確認
動作前に以下のコマンドを実行してください。
{OpenSpliceを展開したディレクトリ}\HDE\x86_64.win64\release.bat
以下のようなrtc.confを作成し、OpenSpliceTransport.pyをロード後、インターフェース型にopenspliceを指定してRTCを起動します。
manager.modules.load_path: C:\\Python37\\Lib\\site-packages\\OpenRTM_aist\\ext\\transport\\OpenSplice
manager.modules.preload: OpenSpliceTransport.py
manager.components.preconnect: ConsoleOut0.in?interface_type=opensplice&marshaling_type=opensplice, ConsoleIn0.out?interface_type=opensplice&marshaling_type=opensplice
Ubuntu
OpenSpliceのインストール
まずはOpenSpliceのPythonラッパーライブラリをインストールする必要があります。 以下からOpenSpliceをダウンロードして適当な場所に展開してください。
- https://github.com/ADLINK-IST/opensplice/releases
wget https://github.com/ADLINK-IST/opensplice/releases/download/OSPL_V6_9_210323OSS_RELEASE/PXXX-VortexOpenSplice-6.9.210323OSS-HDE-x86_64.linux-gcc7-glibc2.27-installer.tar
tar xf PXXX-VortexOpenSplice-6.9.210323OSS-HDE-x86_64.linux-gcc7-glibc2.27-installer.tar
次に展開したフォルダのHDE/x86_64.linux/tools/python/srcで以下のコマンドを実行するとインストールされます。
source ${OPENSPLICE_DIR}/x86_64.linux/release.com
python3 setup.py build
sudo su
# source ${OPENSPLICE_DIR}/x86_64.linux/release.com
# python3 setup.py install
# exit
Cythonをインストールしていない場合は以下のコマンドを実行してください。
sudo apt install python3-pip
pip3 install cython
omniORB-pythonのインストール
omniORBのPython版をインストールします。
sudo su
# echo "deb http://openrtm.org/pub/Linux/ubuntu/ $code_name main" >> /etc/apt/sources.list
# wget -O- --secure-protocol=TLSv1_2 --no-check-certificate https://openrtm.org/pub/openrtm.key | apt-key add -
# apt update
# apt install python3-omniorb python3-omniorb-omg omniidl-python3
# exit
OpenRTM-aistのインストール
OpenRTM-aist 1.2等をインストーラーでインストールしておいてください。 OpenRTM-aist Python版のソースコードを入手してください。
- https://github.com/OpenRTM/OpenRTM-aist-Python
以下のコマンドでOpenRTM-aist Python版をインストールしてください。
sudo apt install doxygen
python3 setup.py build
sudo python3 setup.py install
動作確認
動作前にrelease.comを実行してください。
以下のようなrtc.confを作成し、OpenSpliceTransport.pyをロード後、インターフェース型にopenspliceを指定してRTCを起動します。
manager.modules.load_path: /usr/local/lib/python3.6/dist-packages/OpenRTM_aist/ext/transport/OpenSplice
manager.modules.preload: OpenSpliceTransport.py
manager.components.preconnect: ConsoleOut0.in?interface_type=opensplice&marshaling_type=opensplice, ConsoleIn0.out?interface_type=opensplice&marshaling_type=opensplice
起動時のオプション
C++
rtc.confでOpenRTM-aistのマネージャ起動時に以下のオプションを設定可能です。 ※開発中のOpenRTM-aistでは使用可能ですが、リリースしたバージョンでは未実装の場合があります。
| オプション名 | 設定例 | オプション | 内容 |
|---|---|---|---|
| opensplice.uri | file://OpenSpliceQoSExample.xml | OpenSpliceのQoS設定ファイルを指定する。 | |
| opensplice.profile | testProfile | QoSのプロファイル名を指定する。 | |
| opensplice.participant_qos.name | testParticipant | ロードするDomainParticipantのプロファイル名 | |
| opensplice.participant_qos.entity_factory.autoenable_created_entities | YES | YES,NO | |
| opensplice.participant_qos.listener_scheduling.scheduling_class.kind | SCHEDULE_DEFAULT | SCHEDULE_DEFAULT,SCHEDULE_TIMESHARING,SCHEDULE_REALTIME | |
| opensplice.participant_qos.listener_scheduling.scheduling_priority | 1 | ||
| opensplice.participant_qos.listener_scheduling.scheduling_priority_kind.kind | PRIORITY_RELATIVE | PRIORITY_RELATIVE,PRIORITY_ABSOLUTE | |
| opensplice.participant_qos.watchdog_scheduling.scheduling_class.kind | SCHEDULE_DEFAULT | SCHEDULE_DEFAULT,SCHEDULE_TIMESHARING,SCHEDULE_REALTIME | |
| opensplice.participant_qos.watchdog_scheduling.scheduling_priority | 1 | ||
| opensplice.participant_qos.watchdog_scheduling.scheduling_priority_kind.kind | PRIORITY_RELATIVE | PRIORITY_RELATIVE,PRIORITY_ABSOLUTE | |
| opensplice.publisher_qos.entity_factory.autoenable_created_entities | YES | YES,NO | |
| opensplice.publisher_qos.presentation.access_scope | INSTANCE_PRESENTATION_QOS | INSTANCE_PRESENTATION_QOS,TOPIC_PRESENTATION_QOS,GROUP_PRESENTATION_QOS | |
| opensplice.publisher_qos.presentation.coherent_access | YES | YES,NO | |
| opensplice.publisher_qos.presentation.ordered_access | YES | YES,NO | |
| opensplice.publisher_qos.id | testPublisher | ロードするPublisherのプロファイル名 | |
| opensplice.subscriber_qos.entity_factory.autoenable_created_entities | YES | YES,NO | |
| opensplice.subscriber_qos.presentation.access_scope | INSTANCE_PRESENTATION_QOS | INSTANCE_PRESENTATION_QOS,TOPIC_PRESENTATION_QOS,GROUP_PRESENTATION_QOS | |
| opensplice.subscriber_qos.presentation.coherent_access | YES | YES,NO | |
| opensplice.subscriber_qos.presentation.ordered_access | YES | YES,NO | |
| opensplice.subscriber_qos.share.enable | YES | YES,NO | |
| opensplice.subscriber_qos.id | testSubscriber | ロードするSubscriberのプロファイル名 |
以下に記述例を記載します。
opensplice.uri: file://OpenSpliceQoSExample.xml
opensplice.profile: testProfile
Python
| オプション名 | 設定例 | オプション | 内容 |
|---|---|---|---|
| opensplice.uri | file://OpenSpliceQoSExample.xml | OpenSpliceのQoS設定ファイルを指定する。 | |
| opensplice.profile | testProfile | QoSのプロファイル名を指定する。 | |
| opensplice.publisher_qos.presentation.access_scope | |||
| opensplice.publisher_qos.presentation.coherent_access | |||
| opensplice.publisher_qos.presentation.ordered_access | |||
| opensplice.subscriber_qos.presentation.access_scope | |||
| opensplice.subscriber_qos.presentation.coherent_access | |||
| opensplice.subscriber_qos.presentation.ordered_access |
以下に記述例を記載します。
opensplice.uri: file://OpenSpliceQoSExample.xml
opensplice.profile: testProfile
接続時のオプション
C++
データポート接続時のコネクタプロファイルに設定できるオプションは以下の通りです。
| オプション名 | デフォルト値 | オプション | 内容 |
|---|---|---|---|
| opensplice.topic | chatter | DDSトピックの名前 | |
| opensplice.reader_qos.id | ロードするReaderのプロファイル名 | ||
| opensplice.writer_qos.id | ロードするWriterのプロファイル名 | ||
| opensplice.topic_qos.id | ロードするTopicのプロファイル名 | ||
| opensplice.reader_qos.durability.kind | TRANSIENT_DURABILITY_QOS | VOLATILE_DURABILITY_QOS, TRANSIENT_LOCAL_DURABILITY_QOS, TRANSIENT_DURABILITY_QOS, PERSISTENT_DURABILITY_QOS | |
| opensplice.reader_qos.deadline.period.sec | 2147483647 | ||
| opensplice.reader_qos.deadline.period.nanosec | 2147483647 | ||
| opensplice.reader_qos.latency_budget.duration.sec | 0 | ||
| opensplice.reader_qos.latency_budget.duration.nanosec | 0 | ||
| opensplice.reader_qos.liveliness.kind | AUTOMATIC_LIVELINESS_QOS | AUTOMATIC_LIVELINESS_QOS, MANUAL_BY_PARTICIPANT_LIVELINESS_QOS, MANUAL_BY_TOPIC_LIVELINESS_QOS | |
| opensplice.reader_qos.liveliness.lease_duration.sec | 2147483647 | ||
| opensplice.reader_qos.liveliness.lease_duration.nanosec | 2147483647 | ||
| opensplice.reader_qos.reliability.kind | BEST_EFFORT_RELIABILITY_QOS | BEST_EFFORT_RELIABILITY_QOS, RELIABLE_RELIABILITY_QOS | |
| opensplice.reader_qos.reliability.max_blocking_time.sec | 2147483647 | ||
| opensplice.reader_qos.reliability.max_blocking_time.nanosec | 2147483647 | ||
| opensplice.reader_qos.reliability.synchronous | NO | YES, NO | |
| opensplice.reader_qos.destination_order.kind | BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS | BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS, BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS | |
| opensplice.reader_qos.history.kind | KEEP_LAST_HISTORY_QOS | KEEP_LAST_HISTORY_QOS, KEEP_ALL_HISTORY_QOS | |
| opensplice.reader_qos.history.depth | 1 | ||
| opensplice.reader_qos.resource_limits.max_samples | -1 | ||
| opensplice.reader_qos.resource_limits.max_instances | -1 | ||
| opensplice.reader_qos.resource_limits.max_samples_per_instance | -1 | ||
| opensplice.reader_qos.ownership.kind | SHARED_OWNERSHIP_QOS | SHARED_OWNERSHIP_QOS, EXCLUSIVE_OWNERSHIP_QOS | |
| opensplice.reader_qos.time_based_filter.minimum_separation.sec | 0 | ||
| opensplice.reader_qos.time_based_filter.minimum_separation.nanosec | 0 | ||
| opensplice.reader_qos.reader_data_lifecycle.autopurge_disposed_samples_delay.sec | 2147483647 | ||
| opensplice.reader_qos.reader_data_lifecycle.autopurge_disposed_samples_delay.nanosec | 2147483647 | ||
| opensplice.reader_qos.reader_data_lifecycle.autopurge_dispose_all | NO | YES, NO | |
| opensplice.reader_qos.reader_data_lifecycle.autopurge_nowriter_samples_delay.sec | 2147483647 | ||
| opensplice.reader_qos.reader_data_lifecycle.autopurge_nowriter_samples_delay.nanosec | 2147483647 | ||
| opensplice.reader_qos.reader_data_lifecycle.enable_invalid_samples | YES | YES, NO | |
| opensplice.reader_qos.reader_data_lifecycle.invalid_sample_visibility.kind | MINIMUM_INVALID_SAMPLES | NO_INVALID_SAMPLES, MINIMUM_INVALID_SAMPLES, ALL_INVALID_SAMPLES | |
| opensplice.writer_qos.durability.kind | TRANSIENT_DURABILITY_QOS | VOLATILE_DURABILITY_QOS, TRANSIENT_LOCAL_DURABILITY_QOS, TRANSIENT_DURABILITY_QOS, PERSISTENT_DURABILITY_QOS | |
| opensplice.writer_qos.deadline.period.sec | 2147483647 | ||
| opensplice.writer_qos.deadline.period.nanosec | 2147483647 | ||
| opensplice.writer_qos.latency_budget.duration.sec | 0 | ||
| opensplice.writer_qos.latency_budget.duration.nanosec | 0 | ||
| opensplice.writer_qos.liveliness.kind | AUTOMATIC_LIVELINESS_QOS | AUTOMATIC_LIVELINESS_QOS, MANUAL_BY_PARTICIPANT_LIVELINESS_QOS, MANUAL_BY_TOPIC_LIVELINESS_QOS | |
| opensplice.writer_qos.liveliness.lease_duration.sec | 2147483647 | ||
| opensplice.writer_qos.liveliness.lease_duration.nanosec | 2147483647 | ||
| opensplice.writer_qos.reliability.kind | RELIABLE_RELIABILITY_QOS | BEST_EFFORT_RELIABILITY_QOS, RELIABLE_RELIABILITY_QOS | |
| opensplice.writer_qos.reliability.max_blocking_time.sec | 2147483647 | ||
| opensplice.writer_qos.reliability.max_blocking_time.nanosec | 2147483647 | ||
| opensplice.writer_qos.reliability.synchronous | NO | YES, NO | |
| opensplice.writer_qos.destination_order.kind | BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS | BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS, BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS | |
| opensplice.writer_qos.history.kind | KEEP_LAST_HISTORY_QOS | KEEP_LAST_HISTORY_QOS, KEEP_ALL_HISTORY_QOS | |
| opensplice.writer_qos.history.depth | 1 | ||
| opensplice.writer_qos.resource_limits.max_samples | -1 | ||
| opensplice.writer_qos.resource_limits.max_instances | -1 | ||
| opensplice.writer_qos.resource_limits.max_samples_per_instance | -1 | ||
| opensplice.writer_qos.transport_priority.value | 0 | ||
| opensplice.writer_qos.lifespan.duration.sec | 2147483647 | ||
| opensplice.writer_qos.lifespan.duration.nanosec | 2147483647 | ||
| opensplice.writer_qos.ownership.kind | SHARED_OWNERSHIP_QOS | SHARED_OWNERSHIP_QOS, EXCLUSIVE_OWNERSHIP_QOS | |
| opensplice.writer_qos.ownership_strength.value | 0 | ||
| opensplice.writer_qos.writer_data_lifecycle.autodispose_unregistered_instances | YES | YES, NO | |
| opensplice.writer_qos.writer_data_lifecycle.autopurge_suspended_samples_delay.sec | 2147483647 | ||
| opensplice.writer_qos.writer_data_lifecycle.autopurge_suspended_samples_delay.nanosec | 2147483647 | ||
| opensplice.writer_qos.writer_data_lifecycle.autounregister_instance_dela.sec | 2147483647 | ||
| opensplice.writer_qos.writer_data_lifecycle.autounregister_instance_dela.nanosec | 2147483647 | ||
| opensplice.topic_qos.durability.kind | TRANSIENT_DURABILITY_QOS | VOLATILE_DURABILITY_QOS, TRANSIENT_LOCAL_DURABILITY_QOS, TRANSIENT_DURABILITY_QOS, PERSISTENT_DURABILITY_QOS | |
| opensplice.topic_qos.deadline.period.sec | 2147483647 | ||
| opensplice.topic_qos.deadline.period.nanosec | 2147483647 | ||
| opensplice.topic_qos.latency_budget.duration.sec | 0 | ||
| opensplice.topic_qos.latency_budget.duration.nanosec | 0 | ||
| opensplice.topic_qos.liveliness.kind | AUTOMATIC_LIVELINESS_QOS | AUTOMATIC_LIVELINESS_QOS, MANUAL_BY_PARTICIPANT_LIVELINESS_QOS, MANUAL_BY_TOPIC_LIVELINESS_QOS | |
| opensplice.topic_qos.liveliness.lease_duration.sec | 2147483647 | ||
| opensplice.topic_qos.liveliness.lease_duration.nanosec | 2147483647 | ||
| opensplice.topic_qos.reliability.kind | RELIABLE_RELIABILITY_QOS | BEST_EFFORT_RELIABILITY_QOS, RELIABLE_RELIABILITY_QOS | |
| opensplice.topic_qos.reliability.max_blocking_time.sec | 2147483647 | ||
| opensplice.topic_qos.reliability.max_blocking_time.nanosec | 2147483647 | ||
| opensplice.topic_qos.reliability.synchronous | NO | YES, NO | |
| opensplice.topic_qos.destination_order.kind | BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS | BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS, BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS | |
| opensplice.topic_qos.history.kind | KEEP_ALL_HISTORY_QOS | KEEP_LAST_HISTORY_QOS, KEEP_ALL_HISTORY_QOS | |
| opensplice.topic_qos.history.depth | 1 | ||
| opensplice.topic_qos.resource_limits.max_samples | -1 | ||
| opensplice.topic_qos.resource_limits.max_instances | -1 | ||
| opensplice.topic_qos.resource_limits.max_samples_per_instance | -1 | ||
| opensplice.topic_qos.transport_priority.value | 0 | ||
| opensplice.topic_qos.lifespan.duration.sec | 2147483647 | ||
| opensplice.topic_qos.lifespan.duration.nanosec | 2147483647 | ||
| opensplice.topic_qos.ownership.kind | SHARED_OWNERSHIP_QOS | SHARED_OWNERSHIP_QOS, EXCLUSIVE_OWNERSHIP_QOS | |
| opensplice.topic_qos.transport_priority.value | 0 | ||
| opensplice.topic_qos.durability_service.history_depth | 1 | ||
| opensplice.topic_qos.durability_service.history_kind | KEEP_LAST_HISTORY_QOS | KEEP_LAST_HISTORY_QOS, KEEP_ALL_HISTORY_QOS | |
| opensplice.topic_qos.durability_service.max_instances | -1 | ||
| opensplice.topic_qos.durability_service.max_samples | -1 | ||
| opensplice.topic_qos.durability_service.max_samples_per_instance | -1 | ||
| opensplice.topic_qos.durability_service.service_cleanup_delay.sec | 0 | ||
| opensplice.topic_qos.durability_service.service_cleanup_delay.nanosec | 0 |
以下に設定例を記載します。
manager.components.preconnect: ConsoleOut0.in?interface_type=opensplice&opensplice.topic=testtopic
Python
| オプション名 | デフォルト値 | オプション | 内容 | |
|---|---|---|---|---|
| opensplice.topic | chatter | DDSトピックの名前 | ||
| opensplice.reader_qos.durability.kind | TRANSIENT_DURABILITY_QOS | VOLATILE_DURABILITY_QOS, TRANSIENT_LOCAL_DURABILITY_QOS, TRANSIENT_DURABILITY_QOS, PERSISTENT_DURABILITY_QOS | ||
| opensplice.reader_qos.deadline.period.sec | 2147483647 | |||
| opensplice.reader_qos.deadline.period.nanosec | 2147483647 | |||
| opensplice.reader_qos.latency_budget.duration.sec | 0 | |||
| opensplice.reader_qos.latency_budget.duration.nanosec | 0 | |||
| opensplice.reader_qos.liveliness.kind | AUTOMATIC_LIVELINESS_QOS | AUTOMATIC_LIVELINESS_QOS, MANUAL_BY_PARTICIPANT_LIVELINESS_QOS, MANUAL_BY_TOPIC_LIVELINESS_QOS | ||
| opensplice.reader_qos.liveliness.lease_duration.sec | 2147483647 | |||
| opensplice.reader_qos.liveliness.lease_duration.nanosec | 2147483647 | |||
| opensplice.reader_qos.reliability.kind | BEST_EFFORT_RELIABILITY_QOS | BEST_EFFORT_RELIABILITY_QOS, RELIABLE_RELIABILITY_QOS | ||
| opensplice.reader_qos.reliability.max_blocking_time.sec | 2147483647 | |||
| opensplice.reader_qos.reliability.max_blocking_time.nanosec | 2147483647 | |||
| opensplice.reader_qos.destination_order.kind | BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS | BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS, BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS | ||
| opensplice.reader_qos.history.kind | KEEP_LAST_HISTORY_QOS | KEEP_LAST_HISTORY_QOS, KEEP_ALL_HISTORY_QOS | ||
| opensplice.reader_qos.history.depth | 1 | |||
| opensplice.reader_qos.resource_limits.max_samples | -1 | |||
| opensplice.reader_qos.resource_limits.max_instances | -1 | |||
| opensplice.reader_qos.resource_limits.max_samples_per_instance | -1 | |||
| opensplice.reader_qos.ownership.kind | SHARED_OWNERSHIP_QOS | SHARED_OWNERSHIP_QOS, EXCLUSIVE_OWNERSHIP_QOS | ||
| opensplice.reader_qos.time_based_filter.minimum_separation.sec | 0 | |||
| opensplice.reader_qos.time_based_filter.minimum_separation.nanosec | 0 | |||
| opensplice.reader_qos.autopurge_disposed_samples_delay.sec | 2147483647 | |||
| opensplice.reader_qos.autopurge_disposed_samples_delay.nanosec | 2147483647 | |||
| opensplice.reader_qos.reader_data_lifecycle.autopurge_nowriter_samples_delay.sec | 2147483647 | |||
| opensplice.reader_qos.reader_data_lifecycle.autopurge_nowriter_samples_delay.nanosec | 2147483647 | |||
| opensplice.writer_qos.durability.kind | TRANSIENT_DURABILITY_QOS | VOLATILE_DURABILITY_QOS, TRANSIENT_LOCAL_DURABILITY_QOS, TRANSIENT_DURABILITY_QOS, PERSISTENT_DURABILITY_QOS | ||
| opensplice.writer_qos.deadline.period.sec | 2147483647 | |||
| opensplice.writer_qos.deadline.period.nanosec | 2147483647 | |||
| opensplice.writer_qos.latency_budget.duration.sec | 0 | |||
| opensplice.writer_qos.latency_budget.duration.nanosec | 0 | |||
| opensplice.writer_qos.liveliness.kind | AUTOMATIC_LIVELINESS_QOS | AUTOMATIC_LIVELINESS_QOS, MANUAL_BY_PARTICIPANT_LIVELINESS_QOS, MANUAL_BY_TOPIC_LIVELINESS_QOS | ||
| opensplice.writer_qos.liveliness.lease_duration.sec | 2147483647 | |||
| opensplice.writer_qos.liveliness.lease_duration.nanosec | 2147483647 | |||
| opensplice.writer_qos.reliability.kind | BEST_EFFORT_RELIABILITY_QOS | BEST_EFFORT_RELIABILITY_QOS, RELIABLE_RELIABILITY_QOS | ||
| opensplice.writer_qos.reliability.max_blocking_time.sec | 2147483647 | |||
| opensplice.writer_qos.reliability.max_blocking_time.nanosec | 2147483647 | |||
| opensplice.writer_qos.destination_order.kind | BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS | BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS, BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS | ||
| opensplice.writer_qos.history.kind | KEEP_LAST_HISTORY_QOS | KEEP_LAST_HISTORY_QOS, KEEP_ALL_HISTORY_QOS | ||
| opensplice.writer_qos.history.depth | 1 | |||
| opensplice.writer_qos.resource_limits.max_samples | -1 | |||
| opensplice.writer_qos.resource_limits.max_instances | -1 | |||
| opensplice.writer_qos.resource_limits.max_samples_per_instance | -1 | |||
| opensplice.writer_qos.transport_priority.value | SHARED_OWNERSHIP_QOS | SHARED_OWNERSHIP_QOS, EXCLUSIVE_OWNERSHIP_QOS | ||
| opensplice.writer_qos.lifespan.duration.sec | 0 | |||
| opensplice.writer_qos.lifespan.duration.nanosec | 0 | |||
| opensplice.writer_qos.ownership.kind | SHARED_OWNERSHIP_QOS | SHARED_OWNERSHIP_QOS, EXCLUSIVE_OWNERSHIP_QOS | ||
| opensplice.writer_qos.ownership_strength.value | 0 | |||
| opensplice.writer_qos.writer_data_lifecycle.autodispose_unregistered_instances | YES | YES, NO | ||
| opensplice.topic_qos.durability.kind | TRANSIENT_DURABILITY_QOS | VOLATILE_DURABILITY_QOS, TRANSIENT_LOCAL_DURABILITY_QOS, TRANSIENT_DURABILITY_QOS, PERSISTENT_DURABILITY_QOS | ||
| opensplice.topic_qos.deadline.period.sec | 2147483647 | |||
| opensplice.topic_qos.deadline.period.nanosec | 2147483647 | |||
| opensplice.topic_qos.latency_budget.duration.sec | 0 | |||
| opensplice.topic_qos.latency_budget.duration.nanosec | 0 | |||
| opensplice.topic_qos.liveliness.kind | AUTOMATIC_LIVELINESS_QOS | AUTOMATIC_LIVELINESS_QOS, MANUAL_BY_PARTICIPANT_LIVELINESS_QOS, MANUAL_BY_TOPIC_LIVELINESS_QOS | ||
| opensplice.topic_qos.liveliness.lease_duration.sec | 2147483647 | |||
| opensplice.topic_qos.liveliness.lease_duration.nanosec | 2147483647 | |||
| opensplice.topic_qos.reliability.kind | RELIABLE_RELIABILITY_QOS | BEST_EFFORT_RELIABILITY_QOS, RELIABLE_RELIABILITY_QOS | ||
| opensplice.topic_qos.reliability.max_blocking_time.sec | 2147483647 | |||
| opensplice.topic_qos.reliability.max_blocking_time.nanosec | 2147483647 | |||
| opensplice.topic_qos.destination_order.kind | BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS | BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS, BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS | ||
| opensplice.topic_qos.history.kind | KEEP_ALL_HISTORY_QOS | KEEP_LAST_HISTORY_QOS, KEEP_ALL_HISTORY_QOS | ||
| opensplice.topic_qos.history.depth | 1 | |||
| opensplice.topic_qos.resource_limits.max_samples | -1 | |||
| opensplice.topic_qos.resource_limits.max_instances | -1 | |||
| opensplice.topic_qos.resource_limits.max_samples_per_instance | -1 | |||
| opensplice.topic_qos.transport_priority.value | 0 | |||
| opensplice.topic_qos.lifespan.duration.sec | 2147483647 | |||
| opensplice.topic_qos.lifespan.duration.nanosec | 2147483647 | |||
| opensplice.topic_qos.ownership.kind | SHARED_OWNERSHIP_QOS | SHARED_OWNERSHIP_QOS, EXCLUSIVE_OWNERSHIP_QOS | ||
| opensplice.topic_qos.transport_priority.value | 0 | |||
| opensplice.topic_qos.durability_service.history_depth | 1 | |||
| opensplice.topic_qos.durability_service.history_kind | KEEP_LAST_HISTORY_QOS | KEEP_LAST_HISTORY_QOS, KEEP_ALL_HISTORY_QOS | ||
| opensplice.topic_qos.durability_service.max_instances | -1 | |||
| opensplice.topic_qos.durability_service.max_samples | -1 | |||
| opensplice.topic_qos.durability_service.max_samples_per_instance | -1 | |||
| opensplice.topic_qos.durability_service.service_cleanup_delay.sec | 0 | |||
| opensplice.topic_qos.durability_service.service_cleanup_delay.nanosec | 0 |
manager.components.preconnect: ConsoleOut0.in?interface_type=opensplice&opensplice.topic=testtopic
その他
OpenSpliceのコンフィギュレーションファイル
OpenSpliceのコンフィギュレーションファイルは環境変数${OSPL_URI}で設定している。
デフォルトでは${OSPL_URI}/etc/config/ospl.xmlが設定されている。
例えば、ドメインIDを変更するためにはospl.xmlの以下の部分を変更する。
<OpenSplice>
<Domain>
<Name>ospl_sp_ddsi</Name>
<!-- 以下を変更する -->
<Id>1</Id>
<SingleProcess>true</SingleProcess>
詳細なログを出力するためには以下の部分を追加する。
<DDSI2Service name="ddsi2">
<!-- 以下を追加する -->
<Tracing>
<Verbosity>FINEST</Verbosity>
</Tracing>
<!-- ここまで -->
<General>