プロジェクト

全般

プロフィール

バグ #752

コンポーネントのデータポート接続時エラーの問題

kuriharaほぼ15年前に追加. 14年以上前に更新.

ステータス:
終了
優先度:
通常
担当者:
対象バージョン:
-
開始日:
2009/06/25
期日:
進捗率:

100%

予定工数:

説明

症状

データポート間の接続では、ConnectorProfileのpropertiesメンバーの要素としてdataport.subscription_typeを指定するが、
この値が"flush","new","periodic"などのように全て小文字になっていない場合、ポート接続時にエラーが発生する。

エラーメッセージは下記のとおり。

lt-ConnectorComp: ConnectorComp.cpp:131: int main(int, char**): Assertion `ret == RTC::RTC_OK' failed.
Aborted (core dumped)

履歴

#1 kuriharaほぼ15年前に更新

  • ステータス新規 から 解決 に変更
  • 進捗率0 から 100 に変更

対策
ConnectorProfile.propertiesのdataport.subscription_typeはOutPortPushConnector::createPublisher(Profile& profile)にて取得されているが、
この取得した値を使用してPublisherFactory::instance().createObject()をコールしているため、該当するPublisherを見つけることができない。

PublisherNew,PublisherFlush,PublisherPeriodicなどはそれぞれ、"new","flush","periodic"のようにすべて小文字のキーで登録されている。
このため、dataport.subscription_typeをプロパティから取得する場合は、coil::normalize()を用いて正規化する必要がある。

coil::normalize()にて正規化する処理を追加したOutPortPushConnector.cppはコミット済み。(リビジョン1408)

#2 匿名ユーザー がほぼ15年前に更新

  • 担当者kurihara にセット

#3 n-ando14年以上前に更新

  • ステータス解決 から 終了 に変更

他の形式にエクスポート: Atom PDF