[openrtm-users 00830] Re: Port 関連の実装に関して

Masayuki Shimizu masayuki.shimizu @ aist.go.jp
2009年 6月 10日 (水) 02:12:18 JST


安藤様

> ちなみに、上記のRTCの状態に応じてポートのサーバントが
> 非アクティブ・アクティブになるという仕様はどう思います
か?
> 相手がアクティブでないと、サービスが利用できないという
のは、
> ある場面では適当かもしれませんが、別の場面ではうっとう
しい
> だけのような気もします。

これまでの私の経験から、サービスポートを使ったRTC
のタイプとして大別して二種類あるように思います。

1. データポートを介した周期データフローがメインのRTC
2. サービスポートを介したサービスの授受がメインのRTC

1のタイプは、onExecute内にそのRTCのメインの処理があり、
サービスポートはその補助的な仕事
(RTCのコンフィグレーションや他のRTCとの同期など)
をするだけのものです。

2のタイプは、onExecuteの処理は実質的に空で、
メインの処理をサービスインタフェースで行うものです。
この場合、データポートが一つもないこともありえます。
(これもデータフローコンポーネントと呼ぶのかは疑問ですが
)

1のタイプの場合、サービスインタフェースは
onExecuteでの処理の補助的な役割なので、
サービスとRTCの状態が必ずしも同期してなくても
よいと思います。メインの処理はRTCがactiveの時にしか
実行されないためです。

ところが、2の場合、メインの処理がサービスインタフェース
なので、RTCの状態とサービスインタフェースの状態
が同期していた方がよいように思います。
そうでないと、メインの処理がRTCの状態と同期しないため、
ユーザからはわかりにくいと思います。

以上のように、RTCの状態とサービスインタフェースの状態
の同期はケースバイケースのように思います。
なので、一番無難なのは、それをユーザが選択できるように
しておくことなのかなと私は思います。

清水

--------------------
Masayuki Shimizu
Assistant Professor
Dept. of Mechanical Engineering, Shizuoka Univ.
3-5-1, Johoku, Naka-ku, Hamamatsu 432-8561, JAPAN
TEL/FAX: +81-53-478-1061
Email: tmsimiz @ ipc.shizuoka.ac.jp



openrtm-users メーリングリストの案内