プロジェクト

全般

プロフィール

機能 #3656

完了

RTC生成時に指定した実行コンテキストが存在しなかった場合にデフォルトの実行コンテキストを生成する

n-miyamoto さんがほぼ8年前に追加. ほぼ7年前に更新.

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

100%

予定工数:

説明

現在の実装ではrtc.confで存在しない実行コンテキストを指定してRTCを生成しようとした場合に、1つも実行コンテキストが生成されずにRTCが生成されてしまうことがあるが、その場合はデフォルトの実行コンテキスト( PeriodicExecutionContext)で生成する

n-miyamoto さんがほぼ8年前に更新

  • ステータス新規 から 解決 に変更
  • 進捗率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}'";' >> $@

n-ando さんがほぼ7年前に更新

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

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