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

kanehara @ yaskawa.co.jp kanehara @ yaskawa.co.jp
2008年 11月 17日 (月) 19:46:58 JST


安川電機の包原と申します.
お世話になっております.

以下について確認させて下さい.

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 と同じメソッドを生成させるにはどうすればよいでしょうか
.

よろしくお願いいたします.
----
包原孝英 (kanehara @ yaskawa.co.jp)
安川電機/つくば研究所
茨城県つくば市東光台5-9-10 〒300-2635
Phone: 029-848-1666    Fax: 029-848-1667




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