[openrtm-users 01180] pull型接続でのイベントハンドラについて

ysuga ysuga @ pop07.odn.ne.jp
2010年 3月 24日 (水) 15:31:17 JST


OpenRTM MLの皆さま:
早大の菅です.
いつもお世話になっております.

DataPortのPull型接続についてお尋ねします.

以前も安藤様や皆さまに申し上げたことがありますが,
スキャナなどのデバイスRTC(Provider)をロボットに載せた場合,
Providerからスキャナに対してのデータの取り込みを
Consumer側のタイミングで起こしたい場合があります.
このために,ConsumerにあるInPortにreadを呼び出したタイミングで,
Provider側にイベントを起こすことが出来ますか?


■以下,具体的な話です

今の僕の認識だと,RELEASE版において,
これまでのpush型接続ですとConsumer側のRTCプロセス,
つまりInPort側がバッファを持っており,
それに対してProvider側のRTCプロセス,
つまりOutPort側がInPortConsumerインターフェースのputメソッドで
アクセスしていて,このタイミングをサブスクリプションで変えられる.

新しいpull型接続ですとその逆でOutPort側にバッファが存在し,
InPort側はOutPortConsumerのgetメソッドで,
バッファにアクセスしていますよね?


そこで質問というか,要望なのですが,
OutPortProvider側の(実装はOutPortCorbaCdrProviderクラス)の
getメソッド内でバッファにreadを読んでいますが,
この直前にイベントリスナーを仕掛けられませんか?

現状ですと,ConnectorDataListenerクラスを使って追加出来る
イベントハンドラは,すべてread後になっており,
所望の動作が出来ません.
サービスポートでreadメソッドを実装するのは簡単なのですが,
できればread動作はDataPortの枠組みで出来ないかな,といつも思っています.

いかがでしょうか?
ご意見をお聞かせください.

-- 
//////////////////////////////////////////////
 菅 佑樹 (すが ゆうき)
E-mail: ysuga @ ysuga.net
研究者関連: http://www.ysuga.net/research
ロボット関連: http://www.ysuga.net/robot
インラインスケート: http://www.ysuga.net/inline

おしらせ: RTミドルウエアやってます
 http://www.ysuga.net/robot/rtm
/////////////////////////////////////////////



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