[openrtm-users 00654] Re: サービスポートにおける sequence の利用について

kanehara @ yaskawa.co.jp kanehara @ yaskawa.co.jp
2008年 11月 18日 (火) 15:07:59 JST


産総研 安藤様

お世話になっております.
安川電機 包原です.

お送り頂いた RtcTemplate で,out を含むメソッドが
正しく生成され,RTCが動作することを確認しました.

#inout もテンプレートがビルドできることは確認しました.

対応ありがとうございました.
----
包原孝英 (kanehara @ yaskawa.co.jp)
安川電機/つくば研究所
茨城県つくば市東光台5-9-10 〒300-2635
Phone: 029-848-1666    Fax: 029-848-1667


noriaki.ando @ gmail.com wrote on 2008/11/18 12:55:55:

> 包原様

> 産総研 安藤です

> ご指摘の問題は、Javaのサービス実装コードのジェネレータの問題です。
> シーケンスに関して in, out, inout の場合分けの処理が正しく行われて
> いなかったようです。

> 修正したRtcTemplateのjarをお送りしますので、
> 試してみていただけないでしょうか?
> #拡張子をjarに直してお使いください。

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

> 
> > 安川電機の包原と申します.
> > お世話になっております.
> >
> > 以下について確認させて下さい.
> >
> > WindowsでJava版のOpenRTM-aist-0.4.1を使用しています.
> >
> > サービスポートの定義(IDL)で sequence を out タイプの
> > 引数で使用するメソッドを定義した場合,こちらの環境では,
> > RtcTemplate が生成するメソッドが idlj が生成するメソッドと
> > 異なるため,そのままではビルドできません.
> >
> > 例)
> >
> > ■IDLファイル:
> >> typedef sequence<double> DoubleSeq;
> >> typedef sequence<float> FloatSeq;
> >> typedef sequence<string> StringSeq;
> >>
> >> interface TestService{
> >>    void testDoubleSeq(in DoubleSeq in_double, out DoubleSeq 
out_double);
> >>    void testFloatSeq(in FloatSeq in_float, out FloatSeq out_float);
> >>    void testStringSeq(in StringSeq in_string, out StringSeq 
out_string);
> >> };
> >
> > ■RtcTemplate が生成するメソッド:
> >
> > ファイル:TestServiceSVC_impl.java
> >> public void testDoubleSeq(double[] in_double, double[] out_double)
> >> public void testFloatSeq(float[] in_float, float[] out_float)
> >> public void testStringSeq(String[] in_string, String[] out_string)
> >
> > ■idlj が生成するメソッド:
> >
> > ファイル:_TestServiceStub.java
> >> public void testDoubleSeq (double[] in_double, DoubleSeqHolder
> > out_double)
> >> public void testFloatSeq (float[] in_float, FloatSeqHolder out_float)
> >> public void testStringSeq (String[] in_string, StringSeqHolder
> > out_string)
> >
> > <環境>
> > OS: Windows XP (SP2)
> > Eclipse: バージョン3.2.0
> > RtcTemplate: jp.go.aist.rtm.rtctemplate_0.4.2rc1.jar
> > Java: 1.6.0_07 (idlj: バージョン 3.1)
> >
> > 現在は,RtcTemplate が生成するファイルを手動で変更してビルドしています
.
> >
> > RtcTemplate に idlj と同じメソッドを生成させるにはどうすればよいでしょ
うか
> > .




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