バグ #2314
完了
  
    
    
  
ConfigurationSetのアクティブセットを<comp>.confで設定しても、見かけ上アクティブセットがデフォルトのままである
 
        
        n-ando さんがほぼ14年前に追加.
        13年以上前に更新.
        
  
  
  
  説明
  
  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件完了)
 
 
  
  
    
    
    
    
    問題は、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を書き換えるほうが自然である。
どうするか要検討。 
     
   
  
  
    
    
    
    
       - ステータス を 新規 から 終了 に変更
 
       - 進捗率 を 80 から 100 に変更
 
    
    
     
   
  
 
  
  
 
他の形式にエクスポート:  Atom
  PDF