株式会社リバスト 菅様
産総研 栗原です。
いつもお世話になっております。
IDL定義にてmoduleを使用してインターフェースを定義した場合に、生成される
コードにmoduleが含まれない件につきましては、既に修正済みですので、
お手数ですが、以下からツールのプラグインをダウンロードし、eclipse/plugins
にあるjp.go.aist.から始まるファイルをダウンロードしたものと置き換えてご使用
頂けますでしょうか。
http://www.openrtm.org/pub/OpenRTM-aist/dailybuild/tools/1.0.0/
現在インストールされているOpenRTMの正確なバージョン(ビルド番号など)を確認する方法はありますか?
現状では、1.0.0から0.4.Xかを確認する事はできますが、ビルド番号までは確認
する事ができません。
エラーを報告するのにすこし不便です.できればインストールされるフォルダに,READMEやVersion.txtなどを入れていただけるとありがたいです.
おっしゃる通りです。
いつ作成されたバージョンのものなのかがわかった方がサポートもしやすいです
ので、検討させて頂きます。
以上、宜しくお願い致します。
2010年9月30日10:36 ysuga <>:
株式会社リバストの菅です.お世話になっております.OpenRTM-aist 1.0RELEASE C++版(OpenRTM-aist-1.0.0-RELEASE_vc9_100212.msiでインストール)
を使っています.OSはWindows (XP, Vista, 7)です.サービスポートを使用するときに,IDLを記述しますが,ネームスペースを使いたいのでmodule定義を使っています.しかしながら,rtc-templateが生成する**_impl.cppなどの実装コードに問題があるため,そのままではコンパイルが通りません.(既出ならすみません)
詳細:以下のようにIDLを記述します.module Amod { struct hoge { long a1; long a2; }; interface hogehoge { long operation(out hoge arg);
};};すると,生成されるimplクラスのコードが,たとえばヘッダーではhogehogeSVC_impl.hclass hogehogeSVC_impl・・・中略 CORBA::Long operation(hoge& arg);};のようになります.この場合,hogeという構造体は,Amodというモジュール内で宣言されているので,
AmodというC++の名前空間内に定義されるのですが,hogehogeSVC_implクラスは,Amod名前空間外に宣言されているので,本来であれば,operationというメソッドは,誤 CORBA::Long operation(hoge& arg);正 CORBA::Long operation(Amod::hoge& arg);とされるべきではないでしょうか?
ヘッダーにもCPPにも同様の変更を加えねばならず不便です.おそらくはrtc-templateの変更が必要になると思います.IDLと,生成されたimplクラスのヘッダーとCPPコードを添付します.ご確認ください.それではP.S.現在インストールされているOpenRTMの正確なバージョン(ビルド番号など)を確認する方法はありますか?エラーを報告するのにすこし不便です.
できればインストールされるフォルダに,READMEやVersion.txtなどを入れていただけるとありがたいです.--
株式会社リバストの菅です.
お世話になっております.
OpenRTM-aist 1.0RELEASE C++版
(OpenRTM-aist-1.0.0-RELEASE_vc9_100212.msiでインストール)
を使っています.
OSはWindows (XP, Vista, 7)です.
サービスポートを使用するときに,
IDLを記述しますが,ネームスペースを使いたいので
module定義を使っています.
しかしながら,rtc-templateが生成する
**_impl.cppなどの実装コードに問題があるため,
そのままではコンパイルが通りません.
(既出ならすみません)
詳細:
以下のようにIDLを記述します.
module Amod {
struct hoge {
long a1;
long a2;
};
interface hogehoge {
long operation(out hoge arg);
};
};
すると,生成されるimplクラスのコードが,たとえばヘッダーでは
hogehogeSVC_impl.h
class hogehogeSVC_impl
・・・中略
CORBA::Long operation(hoge& arg);
};
のようになります.
この場合,hogeという構造体は,
Amodというモジュール内で宣言されているので,
AmodというC++の名前空間内に定義されるのですが,
hogehogeSVC_implクラスは,Amod名前空間外に宣言されているので,
本来であれば,operationというメソッドは,
誤 CORBA::Long operation(hoge& arg);
正 CORBA::Long operation(Amod::hoge& arg);
とされるべきではないでしょうか?
ヘッダーにもCPPにも同様の変更を加えねばならず不便です.
おそらくはrtc-templateの変更が必要になると思います.
IDLと,生成されたimplクラスのヘッダーとCPPコードを添付します.
ご確認ください.
それでは
P.S.
現在インストールされているOpenRTMの正確なバージョン
(ビルド番号など)を確認する方法はありますか?
エラーを報告するのにすこし不便です.
できればインストールされるフォルダに,
READMEやVersion.txtなどを入れていただけるとありがたいです.