[openrtm-users 00825] Re: ポートの名前について

Ando Noriaki n-ando @ aist.go.jp
2009年 6月 9日 (火) 18:17:54 JST


清水様

安藤です

ポート周りは1.0でだいぶ構造を変えました。
詳しくは添付のクラス図をご覧ください。

以前は、InPort<>, OutPort<> というものはバッファを
主体としたクラスだったのですが、1.0からは、
Portそのものになり、バッファは、接続毎に生成されるConnector
オブジェクト毎に一つづつ割り当てられるようになっています。

これにより、以前問題になっていた複数のInPortへの出力ができない
といった問題が解決されました。


> OpenRTM-aist開発者の皆様
>
> ポートの名前について教えてください。
>
> 0.4系では、ポートに関連する名前として、
> バッファ自体の名前とRTC上のポートの名前、
> の二つがあって、
> バッファ名はInPort/OutPortのコンストラクタ引数、
> ポート名はregisterInPort/registerOutPortの
> 引数として指定するようになっていたと思います。
> そして、RTC/PortのCORBAインタフェースから
> 取得される名前は上記のポート名の方だったと思います。
>
> ところが、1.0.0では、
> registerInPort/registerOutPortで
> 指定する名前は特に利用されることも無く、
> RTC/PortのCORBAインタフェースで取得される名前は、
> InPort/OutPortのコンストラクタ引数の方と
> なっているように見受けられます。
>
> これは、ポート関連の名前の位置付けが
> 変わったと考えればよろしいのでしょうか?
> 0.4系ではバッファの名前とポートの名前が
> 分離されていましたが、
> 今後はそれらが統一されて、
> それぞれを独立して名前付けしない方針
> となるのでしょうか?

上記の理由により、InPort/OutPortについては、バッファにつけていた
名前をPortの名前とし、registerInPortなどで渡す名前は、InPortの
名前と同じであるという前提で、ポートのプロパティを取得するためだけに
使用しています。

本当は、どちらか一つにしたいところなのですが、0.4からのインターフェースの
互換性のためこのような仕様になっています。
rtc-templateやRTCBuilderでコードを生成する限りでは、これらの2つの名前は
必ず同じですので問題は起こりません。ただし、自分でregisterInPort
などを呼んで動的にポートを操作する場合には問題になるかもしれません。

void RTObject_impl::registerInPort(InPortBase& inport);

というシグニチャの関数も用意したいと思います。
さらに、以前のregisterInPort関数は

void RTObject_impl::registerInPort(const char* name, InPortBase& inport)
{
   inport.setName(name);
   registerInPort(inport);
}

のようにしようかと思いますが、いかがでしょうか?

> # ポート関連の名前で重要なのは、
> CORBAインタフェースから取得する名前の方なので、
> 0.4系での実装を変更する必要が出てきそうです。
>
> よろしくお願いいたします。
>
> 静岡大 清水
>
> --------------------
> Masayuki Shimizu
> Assistant Professor
> Dept. of Mechanical Engineering, Shizuoka Univ.
> 3-5-1, Johoku, Naka-ku, Hamamatsu 432-8561, JAPAN
> TEL/FAX: +81-53-478-1061
> Email: tmsimiz @ ipc.shizuoka.ac.jp
>
>



-- 
安藤慶昭@独立行政法人産業技術総合研究所 研究員
                  知能システム研究部門 統合知能研究グループ
                  〒305-8568 茨城県つくば市梅園1-1-1 中央第2
                  TEL: 029-861-5981 FAX: 029-862-6631
                  n-ando @ aist.go.jp, n-ando @ ieee.org
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: クリップボード01.png
型:         image/png
サイズ:     33411 バイト
説明:       無し
URL:        <http://www.openrtm.org/pipermail/openrtm-users/attachments/20090609/118895e4/attachment-0001.png>


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