プロジェクト

全般

プロフィール

バグ #1429

rtc-template で module を含むIDLを与えるとエラーになる

n-andoほぼ14年前に追加. ほぼ9年前に更新.

ステータス:
新規
優先度:
通常
担当者:
対象バージョン:
-
開始日:
2010/04/22
期日:
進捗率:

0%

予定工数:

説明

rtc-template で module を含むIDLを与えるとエラーになる
ML 00909にて指摘。

OpenRTM-aist開発者の皆様
九州工業大学 小田謙太郎と申します。

rtctemplate 0.4.2 において、moduleを含むIDLを入力とするとエラーが発生する問題について、報告いたします。

=== IDL ここから ====
module mymodule {
interface MyService {
};
}; === IDL ここまで ====

この IDL を 以下のコマンドラインでrtctemplate(CUI Java版)を起動します。

=== コマンド ここから ====
java jp.go.aist.rtm.rtctemplate.CuiRtcTemplate
--output=. --backend=java --module-name=Hoge --module-desc=Foo
--module-vender=GaGa --module-category=Provider
--module-comp-type=DataFlowComponent --module-act-type=SPORADIC
--module-max-inst=1
--service="myservice:myservice0:mymoduel::MyService"
--service-idl=Module.idl === コマンド ここまで ====

クラスパスは、必要なものが通してあると仮定しています。
このコマンド結果が次に示します。

=== 結果 ここから ====
Invalidated argument for:[--service] args:[myservice, myservice0, mymoduel, , MyService]
Generate fail. === 結果 ここまで ====

このように、テンプレートの生成に失敗してしまいます。
これは、module の区切り文字である"::"がrtctemplate の区切り文字と
重複して扱われているのが原因ではないかと思います。

一方、Eclipse上で動作するGUI版のrtctemplate 0.4.2によるJavaテンプレート生成については、
この区切り文字のコンフリクトはおきませんが、生成されるコードに以下の記述が見られます。

mymodule::MyService

Java言語では::は機能しませんので、エラーが発生してしまいます。

mymodule.MyService

と生成されるべきかと思います。

以上エラーの報告でした。
ご対応検討いただければと思います。

履歴

#1 n-andoほぼ9年前に更新

  • プロジェクトOpenRTM-aist (C++) から コア に変更

他の形式にエクスポート: Atom PDF