操作
バグ #752
完了コンポーネントのデータポート接続時エラーの問題
開始日:
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)
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)
操作