simpleservice
Contents
#contents このサンプルは、OpenRTM-aistのC++版、Python版、Java版に付属しています。
概要
ServicePortの使用方法を示したサンプルです。以下に示すIDLを使用してサービスを定義しています。
typedef sequence<string> EchoList;
typedef sequence<float> ValueList;
interface MyService
{
string echo(in string msg);
EchoList get_echo_history();
void set_value(in float value);
float get_value();
ValueList get_value_history();
};
- MyServiceConsumerコンポーネントとMyServiceProviderコンポーネントを起動します。
- Consumer側コンポーネントをActivateすると、コンソールに利用可能なコマンドリストが表示されますので、各コマンドをお試しください。(Port間の接続にはRTSystemEditorを使用してください。)
起動画面
SimpleService実行例(RTSystemEditor接続画面)
MyServiceConsumerコンポーネントとMyServiceProviderコンポーネントの実行例
使い方
SimpleServiceは、MyServiceConsumerからコマンドを送り、MyServiceProviderでそれを処理させるというサンプルです(※正確には、コマンドの解釈はConsumer側であり、Provider側の関数を呼び出す形で実装されています)。 MyServiceConsumerとMyServiceProviderの対応するポートをRTSystemEditor上で接続し、両コンポーネントをアクティベートします(ActivateするのはConsumer側コンポーネントだけでもよい)とConsumer側プロンプトにコマンド一覧が表示されるので、適当なコマンドを入力してください。Provider側の応答がプロンプト上で観察できます。
- 手順
- RTSystemEditorを起動し、新規SystemEditorを開きます。RTSystemEditorの使用方法の詳細についてはRTSystemEditorを参照
- MyServiceConsumerとMyServiceProviderの両コンポーネントを起動します。
コンポーネントの起動はOSやOpenRTM-aistの言語によって異なりますので、以下の表を参考に起動します。
| Windowsの場合 | Linuxの場合 | |||
|---|---|---|---|---|
| MyServiceConsumerコンポーネント | MyServiceProviderコンポーネント | MyServiceConsumerコンポーネント | MyServiceProviderコンポーネント | |
| C++版 | MyServiceConsumer.bat | MyServiceProvider.bat | MyServiceConsumerComp | MyServiceProviderComp |
| Python版 | MyServiceConsumer.bat | MyServiceProvider.bat | MyServiceConsumer.py | MyServiceProvider.py |
| Java版 | MyServiceConsumer.bat | MyServiceProvider.bat | MyServiceConsumer.sh | MyServiceProvider.sh |
- RTSystem EditorのName Service Viewに両コンポーネントが現れるので、それらをSystemEditor上にドラッグします。
- 両コンポーネントの対応ポートを結びます。(上図SimpleService実行例を参照)
- どちらかのコンポーネントを右クリックし、[Activate Systems]を選択します。(この場合は、Consumer側コンポーネントをActivateするだけでも動作します。)
-
Consumer側プロンプトにコマンドを入力します。
- コマンド
- echo
:任意の をエコー - set_value
:任意の をProvider側にセット - get_value:現在Provider側にセットされている値を取得して表示
- get_echo_history:今までのエコーメッセージの履歴をProvider側から取得
- get_value_history:今までにセットしてきた値の履歴をProvider側から取得
- echo

