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