[openrtm-users 00812] NullBuffer

2 posts / 0 new
Last post
root
Offline
Last seen: 1 day 21 hours ago
Joined: 2009-06-23 14:31
[openrtm-users 00812] NullBuffer

OpenRTM-aist開発者の皆様

ポート(バッファ)のソースを眺めていて思ったのですが、
NullBufferはコンパイルエラーにならないですか?

BufferBase::write(const DataType& value,
long int sec = -1, long int nsec = -1);
とその派生クラスの
NullBuffer::write(const DataType& value);
があるのですが、デフォルト引数のために、
これらは一意に決まらないように思います。
試してないので、もしかしたら私が間違いかもしれません。

静岡大 清水

Undefined
root
Offline
Last seen: 1 day 21 hours ago
Joined: 2009-06-23 14:31
[openrtm-users 00813] NullBuffer

清水様

安藤です

以前はInPort,OutPortクラスの
テンプレートの第2引数にバッファを渡せるようにして
いましたが、1.0では第2引数はなくなりました。

OutPortでは、接続毎にConnectorオブジェクトが生成
され、バッファも同時に生成されます。つまり、接続毎に
バッファを持つようになります。
従いまして、0.4で存在した、複数のInPortへの出力が
できないというバグはなくなりました。

InPortでは、現在の実装では、接続に対してバッファは共有
されていますので、以前の挙動と変わりありません。
原理的には、接続毎にバッファ持たせることもできるようになっていて、
複数のOutPortからの入力を選択的に受け取ることが
できるようにもなっています。これはInPortMultとでも名前を
つけてじきに使えるようにはしたいと思っています。

バッファを動的に生成するといいましたが、生成するバッファは
ユーザが拡張できるようにもなっています。さらに、それを
ローダブルモジュールであとから追加できるようにも
なっています。が、ドキュメントを書いていないので、
実質ユーザが独自のバッファを拡張するのは難しそうですので、
現在のところ使用されるバッファはRingBufferのみとい前提で、
NullBufferについては放置しております。

ちなみに、バッファを接続毎に動的に生成可能にし、かつ
ローダブルモジュールで拡張可能にしたのは、将来的に
InPort/OutPortのバッファをコンポーネント間で共有する
(たとえば共有メモリで)タイプのバッファなどに拡張可能にするためです。

2009/06/04 2:49 に Masayuki Shimizu さんは書きました:
> OpenRTM-aist開発者の皆様
>
> ポート(バッファ)のソースを眺めていて思ったのですが、
> NullBufferはコンパイルエラーにならないですか?
>
> BufferBase::write(const DataType& value,
> long int sec = -1, long int nsec = -1);
> とその派生クラスの
> NullBuffer::write(const DataType& value);
> があるのですが、デフォルト引数のために、
> これらは一意に決まらないように思います。
> 試してないので、もしかしたら私が間違いかもしれません。
>
> 静岡大 清水
>
>

Log in or register to post comments

Download

latest Releases : 2.0.0-RELESE

2.0.0-RELESE Download page

Number of Projects

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