バグ #752
完了
kurihara さんが15年以上前に追加.
15年以上前に更新.
説明
データポート間の接続では、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)
- ステータス を 新規 から 解決 に変更
- 進捗率 を 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)
他の形式にエクスポート: Atom
PDF