プロジェクト

全般

プロフィール

バグ #2314

完了

ConfigurationSetのアクティブセットを<comp>.confで設定しても、見かけ上アクティブセットがデフォルトのままである

n-ando さんがほぼ13年前に追加. ほぼ13年前に更新.

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

100%

予定工数:

説明

ConfigurationSetのアクティブセットを<comp>.confで以下のように設定しても、

(ConfigSampleの例)

configuration.active_config: mode1

conf.default.int_param0: 0
conf.default.int_param1: 1
conf.default.double_param0: 0.99
conf.default.double_param1: -0.99
conf.default.str_param0: default
conf.default.str_param1: default set in conf file
conf.default.vector_param0: 0.0,0.1,0.2,0.3,0.4,0.5,0.6

getActiveId()で取得したアクテx部セットのIDがdefaultのままである。

ただし、変数の中身はmode1の内容になっている。


関連するチケット 2 (0件未完了2件完了)

関連している OpenRTM-aist (Python) - バグ #2316: ConfigurationSetのアクティブセットを<comp>.confで設定しても、見かけ上アクティブセットがデフォルトのままである終了kurihara2012/01/10

操作
関連している OpenRTM-aist (Java) - バグ #2317: ConfigurationSetのアクティブセットを<comp>.confで設定しても、見かけ上アクティブセットがデフォルトのままである終了2012/01/10

操作

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

  • 進捗率0 から 80 に変更

問題は、RTObjectのon_initialize()内で、ConfigAdminのupdate()しか読んでいないため、
変数の中身は指定IDの内容に書き変わっているにもかかわらず、IDは元のままとなっている。


  ReturnCode_t RTObject_impl::on_initialize()
    throw (CORBA::SystemException)
  {
    RTC_TRACE(("on_initialize()"));
    ReturnCode_t ret(RTC::RTC_ERROR);
    try
      {
        preOnInitialize(0);
        ret = onInitialize();
      }
    catch (...)
      {
        ret = RTC::RTC_ERROR;
      }
    std::string active_set;
    active_set = m_properties.getProperty("configuration.active_config",
                                          "default");
    if (m_configsets.haveConfig(active_set.c_str()))
      {
        RTC_DEBUG(("Active configuration set: %s exists.",
                         active_set.c_str()));
        m_configsets.update(active_set.c_str());
        m_configsets.activateConfigurationSet(active_set.c_str()); // ここが足りない
      }
    else
      {
        RTC_DEBUG(("Active configuration set: %s does not exists.",
                         active_set.c_str()));
        m_configsets.update("default");
        m_configsets.activateConfigurationSet("default"); // ここが足りない
      }
    postOnInitialize(0, ret);
    return ret;
  }
<pre>

ソースを上記のように直し修正されたことを確認した。
ただし、update()でIDを指定した場合、強制的にActiveIdを書き換えるほうが自然である。
どうするか要検討。

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

  • ステータス新規 から 終了 に変更
  • 進捗率80 から 100 に変更

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