[openrtm-users 00316] Re: 動的なサービスポートの追加について

kurihara shinji shinji.kurihara @ aist.go.jp
2007年 12月 11日 (火) 10:13:10 JST


小島 様。

栗原です。

> おかげさまで、一応エラーを起こさずに動作はさせることができました。
> 原因は、単体でコンポーネントをアクティブかしたために起こっていたようです。
> (未だ、警告はでておりますが・・・)
> 
> コルバについての知識がほとんどないため、わからないのですが、
> RTC::CorbaConsumerは、やはり実体を持っていないのですね。
> 
> ゆえに、接続していないと、内部の変数や関数の情報が存在しないため、
> nil を返してしまい、エラーとなっていたようです。
そうですね。 
Provider側のコンポーネントと接続していない場合はProvider側のオブジェクトリ
ファレンスが取得できないため、IDLで定義したオペレーションの呼び出しはでき
ませんね。

> そこで現在は、ポートが接続しているかどうかをたしかめようとしているのですが、
> 実現方法がわからず悩んでいます。
> 
> ただ、過去のメーリングリストの内容からget_connector_profile を使って取得
> 可能とあるのですが、うまく調べることができません。
> 
> 簡単なサンプル等が、どこかにございますでしょうか?
OpenRTMに付属のSimpleIOコンポーネントにて、ポート接続が行われるまでonActivated()
内でループするサンプルコンポーネントを作成しましたので、添付させて頂きます。

確認方法は、
 1. CheckConnetコンポーネントを実行。(実行の前にビルドを行って下さい。)
 2. OpenRTM/examples/SimpleIOのConsoleInコンポーネントを実行。
 3. CheckConnect, ConsoleInコンポーネントをRTCLinkにてアクティベイト。
    (この段階では、RTCLink上のCheckConnectコンポーネントは青色のままです。)
 4. ConsoleInとCheckConnectを接続。
    (接続後にCheckConnectコンポーネントは緑になり、onExecute()が呼ばれるよう
     になります。)
です。

"ポートが接続しているかどうか"は、CheckConnectのonActivated()内でInPortに対して
行っております。

参考にして頂けると幸いです。

以上、宣しくお願い致します。




> 07/12/10 に kurihara shinji<shinji.kurihara @ aist.go.jp> さんは書きました:
> > 小島 様。
> >
> > 栗原です。
> >
> > 添付して頂いたファイルを拝見させて頂きました。
> >
> > 確認したい事が2点程あります。
> >  ・ 対になるサービスポートとコンシューマポートにおいて、"Name"(今回の例ですと、
> >    myservice0またはcallback0)と"Type"(RPまたは、RQ)は同じになっていますでしょ
> >    うか?
> >    (OpenRTM-aistサポートページの"FAQ"->"RtcTemplate"を参照下さい。)
> 
> 同じになっておるはずです。
> 実際にはmyservice0, callbackは使っておらず、2つのinterfaceを持つ
> 1つのServicePortとしております。
> ただ、その際には、同じ名前を使っておりますので、大丈夫かとは思います。
> 
> >  ・ RTCLinkにてサービスポート間の接続時に警告等はでておりませんでしょうか?
> >    "No corresponding port interface."等。
> 
> 接続せずに単体で、起動させておりました。
> ゆえに、そのようなエラーは出ておりませんでした。
> 結局、接続させていないことに原因があったようです。
> 
> >
> > > また、interface内で、変数の宣言の仕方等わかりましたら
> > > ご教授願います。
> > interfaceの属性であれば、以下のように記述できます。
> >
> >  interface hoge {
> >   attribute string version;
> >  };
> >
> 
> ありがとうございます。attributeをつければいいのですね。
> これで、もう少し簡単に機能の実現ができそうです。
> 
> ところで、idlファイルに記述する、intefaceなどの書き方は
> Corbaに準拠しているのでしょうか?
> 
> ご教授願います。
> 
> -- 
> <----------------------------------------------------->
>   中央大学大学院 理工学研究科
>   電気電子情報通信工学専攻
>   博士課程前期1年 國井研究室
> 
>   小島 隆史 [Takashi Kojima]
> 
>   ADRESS: 	〒112-8551 東京都文京区春日1-13-27
>   TEL : 	 03-3817-1866(研究室)
>   FAX : 	 03-3817-1847(学科準備室)
>   E-Mail: 	takashi @ hmsl.elect.chuo-u.ac.jp
> <----------------------------------------------------->


-- 
----------
栗原 眞二
shinji.kurihara @ aist.go.jp
kurihara @ imagination.co.jp
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: CheckConnect.tar.gz
型:         application/x-gzip
サイズ:     3892 バイト
説明:       無し
URL:        <http://www.openrtm.org/pipermail/openrtm-users/attachments/20071211/021e6b41/attachment-0001.bin>


openrtm-users メーリングリストの案内