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

Takashi Kojima tkjim48 @ gmail.com
2008年 7月 18日 (金) 19:47:16 JST


産総研 栗原様

ご返事ありがとうございます。
>> エラーの原因は、AutoConnect()の orb->destroy(); にあるようです。
>> orbのポインタを取得するために、CORBA::ORB_init()をコールされております

init()関数が二度呼び出されて、削除されたことでCORBA側でエラーとなっていたんですね。
納得しました。

ご教授されたとおり、
>>   CorbaNaming naming(m_pORB, "127.0.0.1:9876");
としたところ、接続ができ、エラー状態にならないことが確認できました。

ところが、エラー状態からは回避しましたが、onExecute()内で、isNew() 関数が新しいデータを取得していなくても
したように振る舞うようになってしまいました。

おそらくどこかでセグメンテーション違反などの、エラーが起こってしまっているように思うのですが
思い当たるような原因はありますでしょうか?
(valgrindで実行してみた限り、セグメンテーション違反の兆候などはなさそうです)

※表示される前に、受信前に初期化しても、表示されるものが、ほとんどかわらないところをみると、
 データを受信したフラグがたち、初期化されていないバッファから数値が読み込まれているようです。

度重なる質問で恐縮ですが、よろしくお願いいたします。

2008/07/18 17:38 kurihara shinji <shinji.kurihara @ aist.go.jp>:
> 小島 様
>
> 産総研 栗原です。
>
> orb-destroy();をコメントアウトして下さい。
>
> 上記を忘れておりました。
>
>
> 以上、宣しくお願い致します。
>
>
>
> On Fri, 18 Jul 2008 17:35:07 +0900
> kurihara shinji <shinji.kurihara @ aist.go.jp> wrote:
>
>> 小島 様
>>
>> お世話になっております。
>> 産総研 栗原です。
>>
>> 添付のサンプルを拝見させて頂きました。
>>
>> エラーの原因は、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
>>
>
>
> --
> ----------
> 栗原 眞二
> shinji.kurihara @ aist.go.jp
> kurihara @ imagination.co.jp
>
>



-- 
__________________________________________________________________

小島 隆史 / Takashi KOJIMA

The Kunii labratory master grade 2nd in 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 : takashi @ hmsl.elect.chuo-u.ac.jp , tkjim48 @ gmail.com
__________________________________________________________________



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