[openrtm-users 01532] Re: データポートコールバックに関する質問
kurihara shinji
shinji.kurihara @ aist.go.jp
2011年 1月 13日 (木) 00:13:36 JST
富士ソフト 二宮様
お世話になっております。
産総研 栗原です。
ご連絡が遅くなり、申し訳ございません。
> ここで質問ですが、pull型ではどうしてもON_RECEIVEDを受け取ることが
> 出来ませんでしたが、これは仕様でしょうか?
はい、仕様です。
以下のConnectorDataListenerタイプの"ON_RECEIVED"の説明にもありますように、
ON_RECEIVEDは、「InPortへの送信完了時」となっております。
http://www.openrtm.org/OpenRTM-aist/documents/current/cxx/classreference_ja/namespaceRTC.html#aecdfe03a1e91ff9522a322e4bcc9ed71
pull型では、InPort側のタイミングでOutPort側のget()オペレーションが呼ばれ、
OutPort側では”InPortへの送信が完了した”事を知る事ができません。
よって、ON_RECEIVEDはコールしないようになっております。
> pull型でも送信側としては送り出したデータが相手に到達したのか?は知りたい
> ケースがあるかと思います。
OutPort側のget()がreturnする直前でON_RECEIVEDをコールするように変更する事は
可能ですが、この場合、「InPortへのデータ送信が完了したという保証はできない」
といった条件がつきます。
これでもよろしければ、pull型の接続でもOutPort側でON_RECEIVEDコールバックを
コールするように変更致します。
タイミング的には、 ON_BUFFER_READ→ON_SEND->ON_RECEIVED(ON_SENDの直後)となりま
す。
この件に関しまして、皆様のご意見をいただければと存じます。
以上、宜しくお願い致します。
On Tue, 11 Jan 2011 10:53:55 +0900
二宮恒樹 <tnninomi @ fsi.co.jp> wrote:
> OpenRTM-aist開発者の皆様
>
> お世話になっております。富士ソフトの二宮です。
>
> RTCプログラミング入門のデータポート (基礎編)の「データポートの接続」の絵を
> 見つつ、サンプルソースのSimpleIOを用いてデータポートコールバックの挙動を
> 調べていたところ、データフロー型=pull型の場合に不明な点がございましたので
> ご質問させてください。
>
> まずこちらの環境でデータ送信に拾うことが出来たコールバックはデータフロー型、
> サブスクリプション型毎で以下のような流れとなっておりました。
>
> <確認環境>
> OS:Ubuntu10.04、WindowXP各々で確認
> RTM:OpenRTM-1.0.0-RELEASE
>
> push型(Flush)のデータ送信時
> 送信側
> ON_SEND→ON_RECEIVED
> 受信側
> ON_RECEIVED→ON_BUFFER_WRITE
>
> push型(new/periodic)のデータ送信時
> 送信側
> ON_BUFFER_WRITE→ON_BUFFER_READ→ON_SEND→ON_RECEIVED
> 受信側
> ON_RECEIVED→ON_BUFFER_WRITE
>
> pull型(受信側のisNewはコメントアウト)のデータ送信時
> 送信側
> ON_BUFFER_READ→ON_SEND
> 受信側
> ON_RECEIVED→ON_BUFFER_WRITE
>
> ここで質問ですが、pull型ではどうしてもON_RECEIVEDを受け取ることが
> 出来ませんでしたが、これは仕様でしょうか?
>
> pull型でも送信側としては送り出したデータが相手に到達したのか?は知りたい
> ケースがあるかと思います。
>
> お忙しいところ大変恐縮ですが、ご確認の程よろしくお願いいたします。
>
> ---------------------------------------------
> 二宮 恒樹(Tsuneki Ninomiya)
> 富士ソフト株式会社 ロボット事業推進部 R&D室
> E-mail :tnninomi @ fsi.co.jp
> Tel/Fax:03-3256-6353
> (RTC再利用技術研究センター)
> ---------------------------------------------
>
--
----------
栗原 眞二 <shinji.kurihara @ aist.go.jp>
独立行政法人産業技術総合研究所
知能システム研究部門 統合知能研究グループ
〒305-8568
茨城県つくば市梅園1-1-1 中央第2
TEL: 029-861-5956
openrtm-users メーリングリストの案内