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

7 posts / 0 new
Last post
root
Offline
Last seen: 1 day 4 hours ago
Joined: 2009-06-23 14:31
[openrtm-users 00532] コンポーネントの接続について

中央大学の小島と申します。

いつもお世話になっております。

あるコンポーネントが、別のコンポーネントを探し接続するということを
実現したく、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

Undefined
root
Offline
Last seen: 1 day 4 hours ago
Joined: 2009-06-23 14:31
[openrtm-users 00533] コンポーネントの接続について

小島樣

静岡大 清水です。

> 1.ConsoleOutをアクティベートしたとき、自動で接続が行
われるように改造をおこなったのですが
> ConsoleOutがエラー状態に陥ってしまいました。

ソースがないのではっきりとしたことはわかりませんが、
CORBAの例外が発生している可能性があります。
RTCは、onXXXの中から例外が投げられると、
エラー状態に遷移します。
もしCORBAオペレーションの例外catchをしていないのなら、
それをやってみるとエラー原因がわかるかもしれません。

清水

root
Offline
Last seen: 1 day 4 hours ago
Joined: 2009-06-23 14:31
[openrtm-users 00534] コンポーネントの接続について

静岡大 清水様

お返事ありがとうございます。
ソースコードをのせたつもりが、添付し忘れていました。

> ソースがないのではっきりとしたことはわかりませんが、
> CORBAの例外が発生している可能性があります。
> RTCは、onXXXの中から例外が投げられると、
> エラー状態に遷移します。
> もしCORBAオペレーションの例外catchをしていないのなら、
> それをやってみるとエラー原因がわかるかもしれません。

なるほど。そうであれば、OnExecuteに入っていないのもうなずけます。
CORBAオペレーションの例外はキャッチしていないので、
調べて試してみようと思います。
(catchについては、理解が足りず、よくわかっておりませんが・・・)

一応、エラーの出ているソースも添付いたします。

小島

2008/07/18 14:46 Masayuki Shimizu :
> 小島樣
>
> 静岡大 清水です。
>
>> 1.ConsoleOutをアクティベートしたとき、自動で接続が行
> われるように改造をおこなったのですが
>> ConsoleOutがエラー状態に陥ってしまいました。
>
> ソースがないのではっきりとしたことはわかりませんが、
> CORBAの例外が発生している可能性があります。
> RTCは、onXXXの中から例外が投げられると、
> エラー状態に遷移します。
> もしCORBAオペレーションの例外catchをしていないのなら、
> それをやってみるとエラー原因がわかるかもしれません。
>
> 清水
>

root
Offline
Last seen: 1 day 4 hours ago
Joined: 2009-06-23 14:31
[openrtm-users 00535] コンポーネントの接続について

小島 様

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

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

エラーの原因は、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" wrote:

> 静岡大 清水様
>
> お返事ありがとうございます。
> ソースコードをのせたつもりが、添付し忘れていました。
>
> > ソースがないのではっきりとしたことはわかりませんが、
> > CORBAの例外が発生している可能性があります。
> > RTCは、onXXXの中から例外が投げられると、
> > エラー状態に遷移します。
> > もしCORBAオペレーションの例外catchをしていないのなら、
> > それをやってみるとエラー原因がわかるかもしれません。
>
> なるほど。そうであれば、OnExecuteに入っていないのもうなずけます。
> CORBAオペレーションの例外はキャッチしていないので、
> 調べて試してみようと思います。
> (catchについては、理解が足りず、よくわかっておりませんが・・・)
>
> 一応、エラーの出ているソースも添付いたします。
>
> 小島
>
> 2008/07/18 14:46 Masayuki Shimizu :
> > 小島樣
> >
> > 静岡大 清水です。
> >
> >> 1.ConsoleOutをアクティベートしたとき、自動で接続が行
> > われるように改造をおこなったのですが
> >> ConsoleOutがエラー状態に陥ってしまいました。
> >
> > ソースがないのではっきりとしたことはわかりませんが、
> > CORBAの例外が発生している可能性があります。
> > RTCは、onXXXの中から例外が投げられると、
> > エラー状態に遷移します。
> > もしCORBAオペレーションの例外catchをしていないのなら、
> > それをやってみるとエラー原因がわかるかもしれません。
> >
> > 清水
> >
> > --- Takashi Kojima 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
> >>
> >>

root
Offline
Last seen: 1 day 4 hours ago
Joined: 2009-06-23 14:31
[openrtm-users 00536] コンポーネントの接続について

小島 様

産総研 栗原です。

orb-destroy();をコメントアウトして下さい。

上記を忘れておりました。

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

On Fri, 18 Jul 2008 17:35:07 +0900
kurihara shinji 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" wrote:
>
> > 静岡大 清水様
> >
> > お返事ありがとうございます。
> > ソースコードをのせたつもりが、添付し忘れていました。
> >
> > > ソースがないのではっきりとしたことはわかりませんが、
> > > CORBAの例外が発生している可能性があります。
> > > RTCは、onXXXの中から例外が投げられると、
> > > エラー状態に遷移します。
> > > もしCORBAオペレーションの例外catchをしていないのなら、
> > > それをやってみるとエラー原因がわかるかもしれません。
> >
> > なるほど。そうであれば、OnExecuteに入っていないのもうなずけます。
> > CORBAオペレーションの例外はキャッチしていないので、
> > 調べて試してみようと思います。
> > (catchについては、理解が足りず、よくわかっておりませんが・・・)
> >
> > 一応、エラーの出ているソースも添付いたします。
> >
> > 小島
> >
> > 2008/07/18 14:46 Masayuki Shimizu :
> > > 小島樣
> > >
> > > 静岡大 清水です。
> > >
> > >> 1.ConsoleOutをアクティベートしたとき、自動で接続が行
> > > われるように改造をおこなったのですが
> > >> ConsoleOutがエラー状態に陥ってしまいました。
> > >
> > > ソースがないのではっきりとしたことはわかりませんが、
> > > CORBAの例外が発生している可能性があります。
> > > RTCは、onXXXの中から例外が投げられると、
> > > エラー状態に遷移します。
> > > もしCORBAオペレーションの例外catchをしていないのなら、
> > > それをやってみるとエラー原因がわかるかもしれません。
> > >
> > > 清水
> > >
> > > --- Takashi Kojima 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
> > >>
> > >>

root
Offline
Last seen: 1 day 4 hours ago
Joined: 2009-06-23 14:31
[openrtm-users 00537] コンポーネントの接続について

産総研 栗原様

ご返事ありがとうございます。
>> エラーの原因は、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 :
> 小島 様
>
> 産総研 栗原です。
>
> orb-destroy();をコメントアウトして下さい。
>
> 上記を忘れておりました。
>
>
> 以上、宣しくお願い致します。
>
>
>
> On Fri, 18 Jul 2008 17:35:07 +0900
> kurihara shinji 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" wrote:
>>
>> > 静岡大 清水様
>> >
>> > お返事ありがとうございます。
>> > ソースコードをのせたつもりが、添付し忘れていました。
>> >
>> > > ソースがないのではっきりとしたことはわかりませんが、
>> > > CORBAの例外が発生している可能性があります。
>> > > RTCは、onXXXの中から例外が投げられると、
>> > > エラー状態に遷移します。
>> > > もしCORBAオペレーションの例外catchをしていないのなら、
>> > > それをやってみるとエラー原因がわかるかもしれません。
>> >
>> > なるほど。そうであれば、OnExecuteに入っていないのもうなずけます。
>> > CORBAオペレーションの例外はキャッチしていないので、
>> > 調べて試してみようと思います。
>> > (catchについては、理解が足りず、よくわかっておりませんが・・・)
>> >
>> > 一応、エラーの出ているソースも添付いたします。
>> >
>> > 小島
>> >
>> > 2008/07/18 14:46 Masayuki Shimizu :
>> > > 小島樣
>> > >
>> > > 静岡大 清水です。
>> > >
>> > >> 1.ConsoleOutをアクティベートしたとき、自動で接続が行
>> > > われるように改造をおこなったのですが
>> > >> ConsoleOutがエラー状態に陥ってしまいました。
>> > >
>> > > ソースがないのではっきりとしたことはわかりませんが、
>> > > CORBAの例外が発生している可能性があります。
>> > > RTCは、onXXXの中から例外が投げられると、
>> > > エラー状態に遷移します。
>> > > もしCORBAオペレーションの例外catchをしていないのなら、
>> > > それをやってみるとエラー原因がわかるかもしれません。
>> > >
>> > > 清水
>> > >
>> > > --- Takashi Kojima 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
>> > >>
>> > >>

root
Offline
Last seen: 1 day 4 hours ago
Joined: 2009-06-23 14:31
[openrtm-users 00538] コンポーネントの接続について

小島 様

産総研 栗原です。

> >> エラーの原因は、AutoConnect()の orb->destroy(); にあるようです。
> >> orbのポインタを取得するために、CORBA::ORB_init()をコールされております
>
> init()関数が二度呼び出されて、削除されたことでCORBA側でエラーとなっていたんですね。
> 納得しました。
上記について、"エラーの原因・・・"と"orbのポインタ・・・"の間に改行を
入れるのを忘れておりましたので内容的には継ったように見えますが、
エラーの原因は、"AutoConnect()の orb->destroy();"であり、
CORBA::ORB_init()のコールは影響していないと思います。

紛らわしい書き方をしてしまい、申し訳ございません。

omniORBの実装では、CORBA_init()を複数回呼び出した場合、既に存在するORB
への参照を返すようになっていたかと思います。
よって、ORB_init()を複数回コールした事が今回のエラーの原因ではなく、
orb->destroy()で唯一のORBをdestroy()してしまった事がエラーの原因では
ないかと思います。

"orbのポインタ・・・"を記述した理由としては、
RTC::Manager::init(argc,argv);をコールする事で、既にORB_init()が
コールされており、ORBのポインタも取得できますので、それを利用する方が
簡単ではないかと思い、お知らせさせて頂きました。

> ところが、エラー状態からは回避しましたが、onExecute()内で、isNew() 関数が新しいデータを取得していなくても
> したように振る舞うようになってしまいました。
これは、ConsoleOut::AutoConnect()内で、subs_typeが"Periodic"になってい
るためだと思います。
Periodicの場合、周期的にOutPortからInPortへデータが出力され続けます
ので、InPort側でのisNewは毎回trueになります。
subs_typeを"Flush"または、"New"にされるとよろしいかと思います。
ちなみに、SimpleIOサンプルでは、デフォルトでは"Flush"になっています。

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

On Fri, 18 Jul 2008 19:47:16 +0900
"Takashi Kojima" wrote:

> 産総研 栗原様
>
> ご返事ありがとうございます。
> >> エラーの原因は、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 :
> > 小島 様
> >
> > 産総研 栗原です。
> >
> > orb-destroy();をコメントアウトして下さい。
> >
> > 上記を忘れておりました。
> >
> >
> > 以上、宣しくお願い致します。
> >
> >
> >
> > On Fri, 18 Jul 2008 17:35:07 +0900
> > kurihara shinji 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" wrote:
> >>
> >> > 静岡大 清水様
> >> >
> >> > お返事ありがとうございます。
> >> > ソースコードをのせたつもりが、添付し忘れていました。
> >> >
> >> > > ソースがないのではっきりとしたことはわかりませんが、
> >> > > CORBAの例外が発生している可能性があります。
> >> > > RTCは、onXXXの中から例外が投げられると、
> >> > > エラー状態に遷移します。
> >> > > もしCORBAオペレーションの例外catchをしていないのなら、
> >> > > それをやってみるとエラー原因がわかるかもしれません。
> >> >
> >> > なるほど。そうであれば、OnExecuteに入っていないのもうなずけます。
> >> > CORBAオペレーションの例外はキャッチしていないので、
> >> > 調べて試してみようと思います。
> >> > (catchについては、理解が足りず、よくわかっておりませんが・・・)
> >> >
> >> > 一応、エラーの出ているソースも添付いたします。
> >> >
> >> > 小島
> >> >
> >> > 2008/07/18 14:46 Masayuki Shimizu :
> >> > > 小島樣
> >> > >
> >> > > 静岡大 清水です。
> >> > >
> >> > >> 1.ConsoleOutをアクティベートしたとき、自動で接続が行
> >> > > われるように改造をおこなったのですが
> >> > >> ConsoleOutがエラー状態に陥ってしまいました。
> >> > >
> >> > > ソースがないのではっきりとしたことはわかりませんが、
> >> > > CORBAの例外が発生している可能性があります。
> >> > > RTCは、onXXXの中から例外が投げられると、
> >> > > エラー状態に遷移します。
> >> > > もしCORBAオペレーションの例外catchをしていないのなら、
> >> > > それをやってみるとエラー原因がわかるかもしれません。
> >> > >
> >> > > 清水
> >> > >
> >> > > --- Takashi Kojima 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
> >> > >>
> >> > >>

Log in or register to post comments

Download

latest Releases : 2.0.0-RELESE

2.0.0-RELESE Download page

Number of Projects

Choreonoid

Motion editor/Dynamics simulator

OpenHRP3

Dynamics simulator

OpenRTP

Integrated Development Platform

AIST RTC collection

RT-Components collection by AIST

TORK

Tokyo Opensource Robotics Association

DAQ-Middleware

Middleware for DAQ (Data Aquisition) by KEK