[openrtm-users 00535] Re: コンポーネントの接続について

kurihara shinji shinji.kurihara @ aist.go.jp
2008年 7月 18日 (金) 17:35:07 JST


小島 様

お世話になっております。
産総研 栗原です。

添付のサンプルを拝見させて頂きました。

エラーの原因は、AutoConnect()の orb->destroy(); にあるようです。
orbのポインタを取得するために、CORBA::ORB_init()をコールされております
が、コンポーネントオブジェクトはRTObject_imple を継承しておりまして、
RTObject_impleではCORBA::ORB_var m_pORB;がprotectedで宣言されておりま
すので、m_pORBを使用できます。

よって、
  CORBA::ORB_var orb = CORBA::ORB_init(_argc, _argv);
  CorbaNaming naming(orb, "127.0.0.1:9876");
の行は、
  CorbaNaming naming(m_pORB, "127.0.0.1:9876");
に書き換えることができます。

それと、rtc.confのnaming.formatsも下記のようにして下さい。

 naming.formats: %n.rtc


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



On Fri, 18 Jul 2008 17:13:38 +0900
"Takashi Kojima" <tkjim48 @ gmail.com> wrote:

> 静岡大 清水様
> 
> お返事ありがとうございます。
> ソースコードをのせたつもりが、添付し忘れていました。
> 
> > ソースがないのではっきりとしたことはわかりませんが、
> > CORBAの例外が発生している可能性があります。
> > RTCは、onXXXの中から例外が投げられると、
> > エラー状態に遷移します。
> > もしCORBAオペレーションの例外catchをしていないのなら、
> > それをやってみるとエラー原因がわかるかもしれません。
> 
> なるほど。そうであれば、OnExecuteに入っていないのもうなずけます。
> CORBAオペレーションの例外はキャッチしていないので、
> 調べて試してみようと思います。
> (catchについては、理解が足りず、よくわかっておりませんが・・・)
> 
> 一応、エラーの出ているソースも添付いたします。
> 
> 小島
> 
> 2008/07/18 14:46 Masayuki Shimizu <masayuki.shimizu @ aist.go.jp>:
> > 小島樣
> >
> > 静岡大 清水です。
> >
> >> 1.ConsoleOutをアクティベートしたとき、自動で接続が行
> > われるように改造をおこなったのですが
> >> ConsoleOutがエラー状態に陥ってしまいました。
> >
> > ソースがないのではっきりとしたことはわかりませんが、
> > CORBAの例外が発生している可能性があります。
> > RTCは、onXXXの中から例外が投げられると、
> > エラー状態に遷移します。
> > もしCORBAオペレーションの例外catchをしていないのなら、
> > それをやってみるとエラー原因がわかるかもしれません。
> >
> > 清水
> >
> > --- Takashi Kojima <tkjim48 @ gmail.com> wrote:
> >
> >> 中央大学の小島と申します。
> >>
> >> いつもお世話になっております。
> >>
> >> あるコンポーネントが、別のコンポーネントを探し接続する
> > ということを
> >> 実現したく、SimpleIOを改造しております。
> >>
> >> そこで問題と不明な点がありましたのでご質問させていただ
> > きます。
> >>
> >> 1.ConsoleOutをアクティベートしたとき、自動で接続が行
> > われるように改造をおこなったのですが
> >> ConsoleOutがエラー状態に陥ってしまいました。
> >>
> >> 接続に関しては、ConnectorCompにあるコードを、ほぼ、そ
> > のまま使いました。
> >> (ConnectorCompのActivateの部分はコメントアウトしまし
> > た)
> >>
> >> OnExecuteにも移行していないようなので、なんらかの内部
> > 的なエラーがあったのでしょうか?
> >> とすれば、どうすれば、エラーにならずに接続が可能になる
> > でしょうか?
> >> (RTC-Link上では接続まではできていることを確認いたしま
> > した)
> >>
> >> エラーがでるプログラムを添付いたしますので、修正法方等
> > を、ご教授願えると幸いです。
> >>
> >> 2.ConsoleOutでは、自分の持つポートについてはわかって
> > いるので、
> >>
> > 添付したプログラムのconout->get_ports()からthis->gets_ports()
> >> という形に変更して、接続することが出来たのですが、これ
> > は操作としてまずい操作でしょうか。
> >>
> >> registerされたかどうかが不明であるという点以外では、問
> > 題がなさそうに思うのですが、
> >> いかがでしょうか?
> >> (1の現象は起こっているので、正常に動作するかの確認は
> > 出来きておりません)
> >>
> >> 環境:
> >> FC6, OpenRTM-aist-0.4.2
> >> kernel-2.6.18-1.2798.fc6-i686
> >>
> >>
> > __________________________________________________________________
> >>
> >> Takashi KOJIMA
> >>
> >> Kunii labratory ,Chuo University
> >>
> >> ADDRESS: 1-13-27, Kasuga, Bunkyo-ku, Tokyo, 112-8551
> >> Phone : +81-3-3817-1866 (Lab)
> >> FAX : +81-3-3817-1847 (Subject-of-study preparation
> >> room)
> >> E-Mail : tkjim48 @ gmail.com
> >>
> > __________________________________________________________________
> >>
> >>
> >
> >
> 


-- 
----------
栗原 眞二
shinji.kurihara @ aist.go.jp
kurihara @ imagination.co.jp



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