Project

General

Profile

Actions

バグ #2314

closed

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

Added by n-ando almost 13 years ago. Updated almost 13 years ago.

Status:
終了
Priority:
通常
Assignee:
Target version:
-
Start date:
01/04/2012
Due date:
% Done:

100%

Estimated time:

Description

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の内容になっている。


Related issues 2 (0 open2 closed)

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

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

Actions
Actions #1

Updated by n-ando almost 13 years ago

  • % Done changed from 0 to 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を書き換えるほうが自然である。
どうするか要検討。
Actions #2

Updated by n-ando almost 13 years ago

  • Status changed from 新規 to 終了
  • % Done changed from 80 to 100
Actions

Also available in: Atom PDF