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

3 個の投稿 / 0 new
最終投稿
root
オンライン
Last seen: 2分 15秒 前
登録日: 2009-06-23 14:31
[openrtm-users 00652] サービスポートにおける sequence の利用について

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

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

WindowsでJava版のOpenRTM-aist-0.4.1を使用しています.

サービスポートの定義(IDL)で sequence を out タイプの
引数で使用するメソッドを定義した場合,こちらの環境では,
RtcTemplate が生成するメソッドが idlj が生成するメソッドと
異なるため,そのままではビルドできません.

例)

■IDLファイル:
> typedef sequence DoubleSeq;
> typedef sequence FloatSeq;
> typedef sequence 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 と同じメソッドを生成させるにはどうすればよいでしょうか

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

未定義
root
オンライン
Last seen: 2分 15秒 前
登録日: 2009-06-23 14:31
[openrtm-users 00653] サービスポートにおける sequence の利用について

包原様

産総研 安藤です

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

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

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

> 安川電機の包原と申します.
> お世話になっております.
>
> 以下について確認させて下さい.
>
> WindowsでJava版のOpenRTM-aist-0.4.1を使用しています.
>
> サービスポートの定義(IDL)で sequence を out タイプの
> 引数で使用するメソッドを定義した場合,こちらの環境では,
> RtcTemplate が生成するメソッドが idlj が生成するメソッドと
> 異なるため,そのままではビルドできません.
>
> 例)
>
> ■IDLファイル:
>> typedef sequence DoubleSeq;
>> typedef sequence FloatSeq;
>> typedef sequence 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 と同じメソッドを生成させるにはどうすればよいでしょうか
> .
>
> よろしくお願いいたします.

root
オンライン
Last seen: 2分 15秒 前
登録日: 2009-06-23 14:31
[openrtm-users 00654] サービスポートにおける sequence の利用について

産総研 安藤様

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

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

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

対応ありがとうございました.

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

コメントを投稿するにはログインまたはユーザー登録を行ってください

ダウンロード

最新バージョン : 2.0.1-RELESE

統計

Webサイト統計
ユーザ数:2209
プロジェクト統計
RTコンポーネント307
RTミドルウエア35
ツール22
文書・仕様書2

Choreonoid

モーションエディタ/シミュレータ

OpenHRP3

動力学シミュレータ

OpenRTP

統合開発プラットフォーム

産総研RTC集

産総研が提供するRTC集

TORK

東京オープンソースロボティクス協会

DAQ-Middleware

ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク