機能 #3656
RTC生成時に指定した実行コンテキストが存在しなかった場合にデフォルトの実行コンテキストを生成する
Start date:
10/11/2016
Due date:
10/31/2016
% Done:
100%
Estimated time:
Description
現在の実装ではrtc.confで存在しない実行コンテキストを指定してRTCを生成しようとした場合に、1つも実行コンテキストが生成されずにRTCが生成されてしまうことがあるが、その場合はデフォルトの実行コンテキスト( PeriodicExecutionContext)で生成する
Associated revisions
[compat,RELENG_1_2] Indentation has been modified. refs #3656
History
#1 Updated by n-miyamoto over 4 years ago
- Status changed from 新規 to 解決
- % Done changed from 0 to 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}'";' >> $@
#2 Updated by n-ando over 3 years ago
- Status changed from 解決 to 終了
[compat,RELENG_1_2] Indentation has been modified. refs #3656