[openrtm-users 02542] RTC Builder 1.1.0 RC2でのServicePort ProviderのSVCクラスの生成について

Yuki Suga ysuga @ ysuga.net
2012年 5月 26日 (土) 01:51:00 JST


OpenRTM-aist MLの皆様:
菅です.お世話になっております.

RTC Builder 1.1.0 RC2を使っております.
これでサービスポートのProvider側を作成したのですが,
RTC Builderが自動生成する**SVCクラスのコードに問題が有り,
ビルドが出来ません.


問題は,idlでstructを返却するようなメソッドを定義した際に,
SVCクラスは,値返却,
一方,idlコンパイラが生成するクラス(継承元)では,
ポインタ返却になっていて,ビルドが出来ません.

具体的には,マニピュレータの標準インターフェースを実装した
RTCを作ろうとしているのですが,
ManipulatorCommonInterface_MiddleLevelのすべてのメソッドが
RETURN_IDというstructを返却するように宣言されています.


さらに,それならば,Python版で実装しようとしたところ,
idlcompile.shが不正でビルドが出来ませんでした.
具体的には,
現状ではidlがさらにインクルードしているidlをコンパイルしません.
この現象はMacOSで確認しました(omniORBpy-3.6, omniORB-4.1.6)
無理矢理インクルード先のidlコンパイルすればビルド&実行できましたが,
ちゃんと実装するには**_idl_example.pyをすこし改変する必要が有りました.
具体的には,RETURN_IDというstructを使えるように,
omniidlが生成したモジュールをimportして,
そのモジュールからRTCをimportしました.
この辺も自動生成できれば嬉しいのですが・・・


必要であればさらに具体的な例を用意しますので,
ご興味のある方はご連絡ください.
C++版の不具合(?)は,どなたか確認いただけたらと存じます.

よろしくお願いします.

-- 
///////////////////////////////////////////////////////////////////
// Yuki Suga, Ph.D.
// URL: http://www.ysuga.net/?lang=en
// E-mail: ysuga @ ysuga.net
///////////////////////////////////////////////////////////////////


More information about the openrtm-users mailing list