[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 メーリングリストの案内