[openrtm-users 01045] Re: OutPortを持つJava版RTCの生成について

katami fsi-katami @ aist.go.jp
2009年 12月 22日 (火) 18:34:11 JST


アイ・テー・シー 村上様

お世話になっております。
産総研 片見です

ご報告ありがとうございます。

> RTC BuilderでOutPortを持つコンポーネントを生成し、
> 他コンポーネントを繋げるとErrorになってしまいました。
Errorは、コンポーネント接続して、write() をコールした場合に
発生している思います。

原因としましては、
初期化されていない TimedDouble を write() した場合、
TimedDouble のメンバーに null が含まれているため
マーシャル時にエラーが発生します。
  これは、TimedDouble に限らず、
  オブジェクトに初期化されていないメンバーある場合には、
  マーシャル時にエラーが発生します。


> 生成された状態
>  m_out_val = new TimedDouble();
> 
> 正しくは
>   m_out_val = new TimedDouble(new RTC.Time(0,0),0);
RTC Builder により生成されるコードですが、
RTC Builder では、
コンポーネントで使用するクラスを
どのような値での初期化するかを
判定することはできないため、
初期化処理はユーザに委ねています。

大変、お手数なのですが、
RTC Builder が生成したコードに
初期化処理を追加するようにお願いいたします。


> また、C++のサンプルコンポーネントについてですが、
> 現在exeファイルのみの配布となっていますが、ソース
> もあわせて配布していただけると私のような初心者には
> 良いかと思います。
ご指摘ありがとうございます。
ご指摘のとおり、
Windowsインストーラではソースコードは配布されません。
しかしながら、
以下 url の「ソースコード・パッチ等」から
ソースコードが入手できますので、
お手数ですが、
そちらからダウンロードして頂きますようお願いいたします。

<http://www.is.aist.go.jp/rt/OpenRTM-aist/html/E38380E382A6E383B3E383ADE383BCE383892FC2B2B.html#xf9e7dd8>

よろしくお願いいたします。


On Tue, 22 Dec 2009 17:27:27 +0900
Tetsutaro Murakami <t.murakami @ aist.go.jp> wrote:

> *途中で送信してしまった為、再送させていただきます。
> 
> OpenRTM MLの皆様
> 
> お世話になっております。
> アイ・テー・シーの村上と申します。
> 
> RTC BuilderでOutPortを持つコンポーネントを生成し、
> 他コンポーネントを繋げるとErrorになってしまいました。
> 
> 調査の結果、生成された状態では以下のように初期化
> されていないためと判明しました。
> 
> 生成された状態
>  m_out_val = new TimedDouble();
> 
> 正しくは
>   m_out_val = new TimedDouble(new RTC.Time(0,0),0);
> 
> 取り敢えず報告まで。
> 
> また、C++のサンプルコンポーネントについてですが、
> 現在exeファイルのみの配布となっていますが、ソース
> もあわせて配布していただけると私のような初心者には
> 良いかと思います。
> 
> 以上、宜しくお願いいたします。
> 
> 
> 


独立行政法人産業技術総合研究所
知能システム研究部門 統合知能研究グループ
〒305-8568 茨城県つくば市梅園1-1-1 中央第2
片見 剛人 <fsi-katami @ aist.go.jp>





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