[openrtm-users 01068] Re: RT System Editorの排出するXMLファイル(RTSファイル?)の仕様について
Yasuaki Odagiri
odagiri @ sec.co.jp
2010年 1月 13日 (水) 17:36:19 JST
早稲田大学 菅様
お世話になっております。
株式会社セックの小田桐です。
ご指摘の問題には私もぶつかりました。
RT System Editorが吐き出すXML(RTS Profile)のポート接続情報には、
対象ポートを持つRTCについて、インスタンス名とRTCの型情報しか
記述されていません。
現在のインスタンス名の命名規則では、別プロセスのRTC同士は
インスタンス名が重複するため、問題が生じることがあります。
これは、以前、[openrtm-users 00833]で私も
指摘させていただいています。
私もツールを作る上で困ったので、とりあえず現状では、
以下のようにRTCのインスタンス名にパスを付与することで
問題を回避しています。
(ホスト名)_(PID)_(通常のRTCのインスタンス名).rtc
C++版以外はまだ見ていないのでわからないのですが、
C++版の1.0.0系では、Manager::createComponent()を
以下のように呼び出せば、既存の命名規則を無視して、
インスタンス名を強制的に上書きできるようになります。
manager->createComponent("ConsoleIn?instance_name=Test");
ただし、RC1ではこの処理に少し問題があり、うまく動作しません。
一応、以下のようにRTObject_impl::initialize()を
オーバライドすればほぼ正しく動くようになります。
RTC::ReturnCode_t Sample::initialize()
throw(CORBA::SystemException)
{
RTC::Properties dummy_prop;
setProperties(dummy_prop); // ★これを呼ぶとインスタンス名が正しく上書きされる
return DataFlowComponentBase::initialize();
}
ご参考になれば幸いです。
以上
On Mon, 28 Dec 2009 20:17:23 +0900
ysuga <ysuga @ pop07.odn.ne.jp> wrote:
> OpenRTM-aist メーリングリストの皆様:
> お世話になっております.早大の菅です.
>
> さっそく本題です.
> RT System Editorと連携できるツールを作っていますが,
> System Editorの保存するXMLファイルの仕様が良くないです.
>
>
> SystemEditorが吐き出すXMLファイルですが,
> コネクションのデータ内にRTCのインスタンス名しか
> 登録できていませんが,この仕様でよいのですか?
> フルパスで指定できないと,重複の可能性がありますし,
> 今作っているツールの用途だと不便になってしまいます.
>
> rts:sourceDataPortにrts:pathUriのアトリビュートを追加できませんか?
> (若干ですが名前が誤解を生みそうですね.
> rts:componentPathUriのほうがよさそうです.
>
>
> こまかい話ですがご検討ください.
>
> ではでは
>
>
> --
> /***************************************
> * 菅 佑樹
> * ysuga @ ysuga.net
> * http://www.ysuga.net
> * お知らせ:RTミドルウエア始めました
> ***************************************/
>
-----------------------------------------------------------
株式会社セック 開発本部 第一開発部
〒150-0031 東京都渋谷区桜丘町 22-14 NESビル
TEL: 03-5458-7741 FAX : 03-5458-7726
URL: http://www.sec.co.jp
小田桐 康暁 (Yasuaki ODAGIRI)
E-Mail: odagiri @ sec.co.jp
-----------------------------------------------------------
openrtm-users メーリングリストの案内