機能 #3656
完了
RTC生成時に指定した実行コンテキストが存在しなかった場合にデフォルトの実行コンテキストを生成する
n-miyamoto さんが約8年前に追加.
7年以上前に更新.
説明
現在の実装ではrtc.confで存在しない実行コンテキストを指定してRTCを生成しようとした場合に、1つも実行コンテキストが生成されずにRTCが生成されてしまうことがあるが、その場合はデフォルトの実行コンテキスト( PeriodicExecutionContext)で生成する
- ステータス を 新規 から 解決 に変更
- 進捗率 を 0 から 100 に変更
createContexts関数に生成した実行コンテキストの数が0の時にデフォルトの実行コンテキストを生成する処理を追加
if (m_eclist.empty())
{
coil::Properties prop;
prop.setDefaults(default_config);
RTC::ExecutionContextBase* ec = NULL;
ec = RTC::ExecutionContextFactory::
instance().createObject(prop["exec_cxt.periodic.type"].c_str());
if (ec == NULL)
{
RTC_ERROR(("EC (%s) creation failed.", prop["exec_cxt.periodic.type"].c_str()));
RTC_DEBUG(("Available EC list: %s",
coil::flatten(avail_ec).c_str()));
ret = RTC::RTC_ERROR;
}
ec->init(coil::Properties());
m_eclist.push_back(ec);
ec->bindComponent(this);
}
デフォルトの実行コンテキスト名はDefaultConfiguration.hから取得しているが、そのままDefaultConfiguration.hをインクルードしようとすると変数の多重定義エラーが発生するため、version.hの変数にはstaticを付けるように変更した。
echo 'static const char* openrtm_name = "'${PACKAGE}'-'${VERSION}'";' >> $@
echo 'static const char* openrtm_version = "'${VERSION}'";' >> $@
echo 'static const char* corba_name = "'${ORB}'";' >> $@
他の形式にエクスポート: Atom
PDF