[openrtm-users 00901] Re: OpenRTM1.0.0-RC1 の OutPort に値が格納できない不具合
Ando Noriaki
n-ando @ aist.go.jp
2009年 8月 3日 (月) 14:30:14 JST
俵様
安藤です
>
> rtm/OutPort.hによると
> その後の処理で
> conn_sizeが0以下の場合
> m_connectors[i]->write(m_cdr);
> のループ処理に至らないということで
> 同じ結果になると思われます。
> 以上です。
Aug 03 10:50:00 TRACE: steer: getConnectorProfiles(): size = 1
でも、ログ↑にあるように、m_connectors.size() は1を返していますよね。
write()関数の先頭部分で
size_t conn_size(m_connectors.size());
のように代入しているので、conn_sizeは1になりそうな気がしますが。
念のため、OutPort.h の write() の後半を以下のように書き換えて
ログを見てみてはどうでしょうか?
bool result(true);
RTC_PARANOID(("0: conn_size = %d", conn_size));
RTC_PARANOID(("0: connectos.size() = %d", m_connectors.size()));
for (size_t i(0), len(conn_size); i < len; ++i)
{
ReturnCode ret;
ret = m_connectors[i]->write(m_cdr);
RTC_PARANOID(("1: conn_size = %d", conn_size));
RTC_PARANOID(("1: connectos.size() = %d", m_connectors.size()));
if (ret != PORT_OK)
{
result = false;
if (ret == CONNECTION_LOST)
{
disconnect(m_connectors[i]->id());
}
}
}
RTC_PARANOID(("2: conn_size = %d", conn_size));
RTC_PARANOID(("2: connectos.size() = %d", m_connectors.size()));
return result;
あと、ためしにコンポーネントのソースを送ってみてもらえますか?
--
安藤慶昭@独立行政法人産業技術総合研究所 研究員
知能システム研究部門 統合知能研究グループ
〒305-8568 茨城県つくば市梅園1-1-1 中央第2
TEL: 029-861-5981 FAX: 029-862-6631
n-ando @ aist.go.jp, n-ando @ ieee.org
openrtm-users メーリングリストの案内