[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 メーリングリストの案内