Download
latest Releases : 2.0.0-RELESE
2.0.0-RELESE | Download page |
Number of Projects
RT-Component | 153.5 |
RT-Middleware | 35 |
Tools | 22 |
Documentation | 2 |
Choreonoid
Motion editor/Dynamics simulator
OpenHRP3
Dynamics simulator
OpenRTP
Integrated Development Platform
AIST RTC collection
RT-Components collection by AIST
TORK
Tokyo Opensource Robotics Association
DAQ-Middleware
Middleware for DAQ (Data Aquisition) by KEK
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の枠組みで出来ないかな,といつも思っています.
いかがでしょうか?
ご意見をお聞かせください.