[openrtm-users 00389] Re: 複数インスタンスの生成およびデータポート出力の分岐について

Masayuki Shimizu masayuki.shimizu @ aist.go.jp
2008年 3月 15日 (土) 01:36:32 JST


安川電機 亀井樣、足立樣

産総研 清水です。

Java版ではないですが、C++版で同様の問題で困っている方もいるかと思うので、
C++版の場合の情報を流させて頂きます。

> 2. 1の実行結果から生成された2つのコンポーネントをRTCLink上に表示し、
>    ジョイスティックコンポーネントのデータポートと接続する場合、1つの出力
>   データポートから、上記2つのMyServiceコンポーネントの入力データポートに
>  分岐接続するようなことは可能でしょうか。現状、見た目は分岐しているのです
>>  実行すると片側のMyServiceコンポーネントにのみデータが渡されております。

現在のリリース版では、バッファまわりの問題のために、
一つの出力データを複数ポートに送ることができません。
この問題は、次期バージョンで修正されると思いますが、
現バージョンでも対処方法がいくつか考えられます。

一番簡単なのは、出力データのバッファリングが必要ない場合です。
この場合は、出力バッファをNullBufferにして、
すべてのデータポートの接続をFlushとするだけです。
この対処法でのソースレベルの変更は以下の一箇所だけです。

<変更部分>
(ヘッダファイル内の出力ポートの定義部)
OutPort<DataType> -> OutPort<DataType, NullBuffer>

(SimpleIOのConsoleInの例)
OutPort<TimedLong, NullBuffer> m_outOut;

以上、お役に立てれば幸いです。

清水
--------------------
Masayuki Shimizu

Postdoctoral Fellow
Task Intelligence Research Group
Intelligent Systems Research Institute
National Institute of 
Advanced Industrial Science and Technology (AIST)
Central 2, 1-1-1, Umezono, Tsukuba, Ibaraki 305-8568, JAPAN
Tel: +81-29-861-5952
Fax: +81-29-861-5971
Email: masayuki.shimizu @ aist.go.jp
       chaser @ ieee.org
URL: http://unit.aist.go.jp/is/taskint/



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