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

Ando Noriaki n-ando @ aist.go.jp
2009年 6月 10日 (水) 11:29:10 JST


清水様

安藤です

私も、同様に考えていました。
選択制にする場合、どの時点で選択できるようにすべきかを迷っていました。

1. コンパイル時
 registerProvider の引数に同期、非同期フラグを追加

2. 起動時(rtc.confなどで指定)
 mycomponent.port.myport.synchronise_state: enable

3. 接続時
 ConnectorProfile::propertiesに指定

4. 任意の時点で
 Configurationを使う?

サービスのロジック的に、コンパイル時に指定したい場合もあるかと思います。
これらもケースバイケースですので、もう少し整理したいと思います。


> 安藤様
>
>> ちなみに、上記の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
>



-- 
安藤慶昭@独立行政法人産業技術総合研究所 研究員
                  知能システム研究部門 統合知能研究グループ
                  〒305-8568 茨城県つくば市梅園1-1-1 中央第2
                  TEL: 029-861-5981 FAX: 029-862-6631
                  n-ando @ aist.go.jp, n-ando @ ieee.org



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