[openrtm-users 00893] Re: OpenRTM1.0.0-RC1 の OutPort に値が格納できない不具合

Masayuki Shimizu masayuki.shimizu @ aist.go.jp
2009年 7月 31日 (金) 18:15:15 JST


俵様

清水です。

安藤さんが言っているように、
> > Jul 28 15:08:10 TRACE: steer: OutPortPushConnector
> created
> > Jul 28 15:08:10 PARANOID: steer: connector push
> backed: 1
とあるので、m_connectorsのサイズがゼロという
ことは無いように思います。
# OutPortBase.cppのソース参照
RTC_PARANOID(("connector push backed: %d",
m_connectors.size()));

どうやってm_connectorsのサイズを確かめてますか?

上記のログがあるのにm_connectorsのサイズが
ゼロということは、あと考えられる可能性としては、
接続をした後で、何かしらの意図しない動作により
接続が解除されてしまっているとしか
考えられません。

清水

--- 俵 崇文@AIST <tawara-takafumi @ aist.go.jp> wrote:

> 安藤様
> 
> お世話になっております。俵です。
> 
> 下記コードを適応したログを添付いたします。
> 出力タイミングは、これまでの通り
> steerポートとvelポートのwriteメソッドの直前になります
。
> 
> 以上です。
> よろしくお願いします。
> 
> Ando Noriaki wrote 2009/07/31 16:29:
> > 俵様
> > 
> > 安藤です
> > 
> >
> 前回のメールで申し上げた通り、ConnectorProfileは存在す
るが、
> > m_connectorsのサイズが0ということですよね。
> >
> いただいたコードと表示結果からは、ConnectorProfileは正
常である
> > ということしかわかりません。
> > ただし、以前いただいたログには
> > Jul 28 15:08:10 TRACE: steer: OutPortPushConnector
> created
> > Jul 28 15:08:10 PARANOID: steer: connector push
> backed: 1
> > とあるので、connector は生成されているっぽいです。
> > 
> > とりあえず、OutPortのPushConnectorのProfileを
> > 以下のようにして表示させてみていただけますか?
> > 
> >   ConnectorBase::ProfileList
> prof(m_outport.getConnectorProfiles());
> >   for (int i(0), len(prof.size()); i < len; ++i)
> >   {
> >     RTC_DEBUG(("ConnectorProfile::name: %s",
> prof[i].name));
> >     RTC_DEBUG(("ConnectorProfile::id: %s",
> prof[i].id));
> >     RTC_DEBUG(("ConnectorProfile::properties:"));
> >     rtclog.level(Logger::RTL_DEBUG) <<
> prof[i].properties;
> >   }
> > 
> > 
> > 
> > 
> > 2009/07/31 15:39 に
> 俵 崇文@AIST<tawara-takafumi @ aist.go.jp>
> さんは書きました:
> >> 安藤様、清水様
> >>
> >> お世話になっております。俵です。
> >>
> >> 助言を参考にして
> >>
> PortService,ConnectorProfile,ConnectorProfile::ports
> >>
> の状態を表示する関数を添付ファイルのように変更しました
。
> >> 表示結果も合わせて添付いたします。
> >>
> >> ConnectorProfileは結果の通り存在しますが、
> >>
> m_connectorsのサイズはデバッガ上確認した場合0のままで
した。
> >> 以上です。
> >> よろしくお願いいたします。
> >>
> >> Ando Noriaki wrote 2009/07/31 11:45:
> >>> 俵様
> >>>
> >>> 安藤です
> >>>
> >>>
> out()関数は、オペレーションのout引数に_var型変数を渡す
時に使うものです。
> >>>
> >>>
> out()を呼ぶとオブジェクトリファレンスがreleaseされてnil
リファレンス
> >>>
> になりますので、その後新たにオブジェクトリファレンスを
代入しない限り
> >>> omniORB: ERROR -- the application attempted to
> invoke an operation
> >>>  on a nil reference.
> >>> のようなエラーが出ます。
> >>>
> >>>
> >>> 2009/07/31 11:38 に
> 俵 崇文@AIST<tawara-takafumi @ aist.go.jp>
> さんは書きました:
> >>>> 安藤様
> >>>> お世話になっております。 俵です。
> >>>>
> >>>>>
> portServiceList[h]->get_connector_profiles()->length();
> >>>>> を呼ぶ前に
> >>>>> portServiceList[h].out()
> >>>>> を呼んでいませんか?
> >>>> はい。呼んでおります。
> >>>>
> >>>> 以上です。
> >>>>
> >>>> Ando Noriaki wrote 2009/07/31 10:43:
> >>>>> 俵様
> >>>>>
> >>>>> 安藤です
> >>>>>
> >>>>>
> portServiceList[h]->get_connector_profiles()->length();
> >>>>> を呼ぶ前に
> >>>>> portServiceList[h].out()
> >>>>> を呼んでいませんか?
> >>>>>
> >>>
> >>
> > 
> > 
> > 
> 
> 
> -- 
> _/_/_/_/_/_/_/_/_/_/_/_/_/
> 株式会社 スプリング(http://www.spring.cc/)
> つくば事業所 俵 崇文
> 俵 崇文@スプリング<tawara @ spring-inc.co.jp>
> 俵 崇文@AIST<tawara-takafumi @ aist.go.jp>
> 事業所 TEL:029-871-7710
> 事業所 FAX:029-830-7037
> _/_/_/_/_/_/_/_/_/_/_/_/_/
> 




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