このサンプルは、OpenRTM-aistのC++版、Python版、Java版に付属されています。
概要
複合コンポーネントCompositeの使用方法を示したサンプルです。 複合コンポーネントをActivateする前に、複合コンポーネントを構成している子のコンポーネント間を接続する必要があります。
- Compositeコンポーネントは、Sensor、Controller、Motorの3つのコンポーネントを子に持っています。
- Compositeコンポーネントの動作は、ConsoleIn/ConsoleOutコンポーネントと接続して確認できます。
起動画面
複合コンポーネント内を表示させるため、PeriodicECShareCompositeをダブルクリックすると、別のエディタに表示されますので、コンポーネント間を接続します。
Composite実行例(複合コンポーネントの子コンポーネント間を接続する)
ここではConsoleIn/ConsoleOutコンポーネントと接続した場合の動作例を示します。
Composite実行例(RTSystemEditor接続画面)
ConsoleInで「111」と入力した場合、ConsoleOutで「888」と表示されれば正しい動作です。 複合コンポーネントを構成している子コンポーネントは、入力値(コンソール画面に表示されている値)を2倍して出力しています。
Composite実行例(左:複合コンポーネント画面、右:ConsoleOut画面)
使い方
Compositeのサンプルは、入力データポートから受け取った値を、3つの子コンポーネントがそれぞれ2倍の値にして出力しているので、最終的にCompositeの出力データポートから8倍の値が出力されるサンプルです。
- 手順
- RTSystemEditorを起動し、新規SystemEditorを開きます。RTSystemEditorの使用方法の詳細についてはRTSystemEditorを参照
- Compositeコンポーネントを起動します。コンポーネントの起動はOSやOpenRTM-aistの言語によって異なりますので、以下の表を参考に起動します。
|
Windowsの場合 |
Linuxの場合 |
C++版 |
Composite.bat |
Composite |
Python版 |
Composite.bat |
Composite.py |
Java版 |
Composite.bat |
Composite.sh |
- RTSystemEditorのName Service ViewにPeriodicECShareCompositeが現れるので、それらをSystemEditor上にドラッグします。
- PeriodicECShareCompositeをダブルクリックし、子コンポーネント間のポートを結びます
- ConsoleInとConsoleOutの両コンポーネントを起動し、PeriodicECShareCompositeと対応ポートを接続します。(上図Composite実行例を参照)
- どちらかのコンポーネントを右クリックし、[Activate Systems]を選択します。