00001 #!/usr/bin/env python 00002 # -*- coding: euc-jp -*- 00003 00004 ## 00005 # @file ConfigAdmin.py 00006 # @brief Configuration Administration classes 00007 # @date $Date: 2007/09/04$ 00008 # @author Noriaki Ando <n-ando@aist.go.jp> and Shinji Kurihara 00009 # 00010 # Copyright (C) 2007-2008 00011 # Task-intelligence Research Group, 00012 # Intelligent Systems Research Institute, 00013 # National Institute of 00014 # Advanced Industrial Science and Technology (AIST), Japan 00015 # All rights reserved. 00016 00017 00018 00019 import copy 00020 import OpenRTM_aist 00021 00022 00023 class OnUpdateCallback: 00024 def __init__(self): 00025 pass 00026 00027 00028 def __call__(self, config_set): 00029 pass 00030 00031 00032 00033 class OnUpdateParamCallback: 00034 def __init__(self): 00035 pass 00036 00037 00038 def __call__(self, config_set, config_param): 00039 pass 00040 00041 00042 00043 class OnSetConfigurationSetCallback: 00044 def __init__(self): 00045 pass 00046 00047 00048 def __call__(self, config_set): 00049 pass 00050 00051 00052 00053 class OnAddConfigurationAddCallback: 00054 def __init__(self): 00055 pass 00056 00057 00058 def __call__(self, config_set): 00059 pass 00060 00061 00062 00063 class OnRemoveConfigurationSetCallback: 00064 def __init__(self): 00065 pass 00066 00067 00068 def __call__(self, config_set): 00069 pass 00070 00071 00072 00073 class OnActivateSetCallback: 00074 def __init__(self): 00075 pass 00076 00077 00078 def __call__(self, config_id): 00079 pass 00080 00081 00082 00083 ## 00084 # @if jp 00085 # @class Config 00086 # @brief Config クラス 00087 # 00088 # コンフィギュレーションパラメータの情報を保持するクラス。 00089 # 00090 # @since 0.4.0 00091 # 00092 # @else 00093 # @class Config 00094 # @brief Config class 00095 # 00096 # Class to hold the configuration parameter information. 00097 # 00098 # @since 0.4.0 00099 # 00100 # @endif 00101 class Config: 00102 """ 00103 """ 00104 00105 ## 00106 # @if jp 00107 # 00108 # @brief コンストラクタ 00109 # 00110 # コンストラクタ 00111 # 00112 # @param self 00113 # @param name コンフィギュレーションパラメータ名 00114 # @param var コンフィギュレーションパラメータ格納用変数 00115 # @param def_val 文字列形式のデフォルト値 00116 # @param trans 文字列形式変換関数(デフォルト値:None) 00117 # 00118 # @else 00119 # 00120 # @brief Constructor 00121 # 00122 # Constructor 00123 # 00124 # @param self 00125 # @param name Configuration parameter name 00126 # @param var Configuration parameter variable 00127 # @param def_val Default value in string format 00128 # @param trans Function to transform into string format 00129 # 00130 # @endif 00131 def __init__(self, name, var, def_val, trans=None): 00132 self.name = name 00133 self.default_value = def_val 00134 self._var = var 00135 if trans: 00136 self._trans = trans 00137 else: 00138 self._trans = OpenRTM_aist.stringTo 00139 00140 00141 ## 00142 # @if jp 00143 # 00144 # @brief バインドパラメータ値を更新 00145 # 00146 # コンフィギュレーション設定値でコンフィギュレーションパラメータを更新する 00147 # 00148 # @param self 00149 # @param val パラメータ値の文字列表現 00150 # 00151 # @return 更新処理結果(更新成功:true,更新失敗:false) 00152 # 00153 # @else 00154 # 00155 # @brief Update a bind parameter value 00156 # 00157 # Update configuration paramater by the configuration value. 00158 # 00159 # @param self 00160 # @param val The parameter values converted into character string format 00161 # 00162 # @return Update result (Successful:true, Failed:false) 00163 # 00164 # @endif 00165 # virtual bool update(const char* val) 00166 def update(self, val): 00167 if self._trans(self._var, val): 00168 return True 00169 self._trans(self._var, self._default_value) 00170 return False 00171 00172 00173 00174 ## 00175 # @if jp 00176 # @class ConfigAdmin 00177 # @brief ConfigAdmin クラス 00178 # 00179 # 各種コンフィギュレーション情報を管理するクラス。 00180 # 用語を以下のように定義する。 00181 # 00182 # - コンフィギュレーション: コンポーネントの設定情報。 00183 # 00184 # - (コンフィギュレーション)パラメータ: key-value からなる設定情報。 00185 # coil::Properties 変数として扱われ、key、value 共に文字列として保 00186 # 持される。key をコンフィギュレーションパラメータ名、value をコン 00187 # フィギュレーションパラメータ値と呼ぶ。 00188 # 00189 # - コンフィギュレーションセット: コンフィギュレーションパラメータ 00190 # のリストで、名前 (ID) によって区別される。IDをコンフィギュレーショ 00191 # ンセットIDと呼ぶ。 00192 # 00193 # - (コンフィギュレーション)パラメータ変数:コンフィギュレーションパ 00194 # ラメータをRTCのアクティビティ内で実際に利用する際に参照される変 00195 # 数。パラメータごとに固有の型を持つ。 00196 # 00197 # - アクティブ(コンフィギュレーション)セット:現在有効なコンフィギュ 00198 # レーションセットのことであり、唯一つ存在する。原則として、アクティ 00199 # ブコンフィギュレーションセットのパラメータがコンフィギュレーショ 00200 # ンパラメータ変数に反映される。 00201 # 00202 # このクラスでは、コンフィギュレーションのための以下の2つの情報を保 00203 # 持している。 00204 # 00205 # -# コンフィギュレーションセットのリスト 00206 # -# パラメータ変数のリスト 00207 # 00208 # 基本的には、(1) のコンフィギュレーションセットのリストのうち一つを、 00209 # (2) のパラメータ変数へ反映させる、のが本クラスの目的である。通常、 00210 # パラメータ変数の変更操作は、コンフィギュレーションセットの変更とパ 00211 # ラメータ変数への反映の2段階で行われる。 00212 # 00213 # コンフィギュレーションセットのリストの操作には、以下の関数を用いる。 00214 # 00215 # - getConfigurationSets() 00216 # - getConfigurationSet() 00217 # - setConfigurationSetValues() 00218 # - getActiveConfigurationSet() 00219 # - addConfigurationSet() 00220 # - removeConfigurationSet() 00221 # - activateConfigurationSet() 00222 # 00223 # これらの関数により、コンフィギュレーションセットの変更、追加、削除、 00224 # 取得、アクティブ化を行う。これらの操作により変更されたコンフィギュ 00225 # レーションセットを、RTCのアクティビティから使用するパラメータ変数 00226 # に反映させるには、以下の update() 関数を用いる。 00227 # 00228 # - update(void) 00229 # - update(const char* config_set) 00230 # - update(const char* config_set, const char* config_param) 00231 # 00232 # コンフィギュレーション操作をフックするためにコールバックファンクタ 00233 # を与えることができる。フックできる操作は以下の通り。 00234 # 00235 # - ON_UPDATE : update() コール時 00236 # - ON_UPDATE_PARAM : update(param) コール時 00237 # - ON_SET_CONFIGURATIONSET : setConfigurationSet() コール時 00238 # - ON_ADD_CONFIGURATIONSET : addConfigurationSet() コール時 00239 # - ON_REMOVE_CONFIGURATIONSET : removeConfigurationSet() コール時 00240 # - ON_ACTIVATE_CONFIGURATIONSET: activateConfigurationSet() コール時 00241 # 00242 # @since 0.4.0 00243 # 00244 # @else 00245 # @class ConfigAdmin 00246 # @brief ConfigAdmin class 00247 # 00248 # Class to manage various configuration information. 00249 # Now terms for this class are defined as follows. 00250 # 00251 # - Configurations: The configuration information for the RTCs. 00252 # 00253 # - (Configuration) parameters: Configuration information that 00254 # consists of a key-value pair. The "key" and the "value" are 00255 # both stored as character string values in a coil::Properties 00256 # variable in this class. The "key" is called the "configuration 00257 # parameter name", and the "value" is called the "configuration 00258 # parameter value". 00259 # 00260 # - Configuration-sets: This is a list of configuration parameters, 00261 # and it is distinguished by name (ID). The ID is called 00262 # configuration-set ID. 00263 # 00264 # - (Configuration) parameter variables: The variables to be 00265 # referred when configuration parameters are actually used within 00266 # the activity of an RTC. Each variable has each type. 00267 # 00268 # - Active (configuration) set: This is the only configuration-set 00269 # that is currently active. The parameter values of the active 00270 # configuration-set are substituted into configuration variables 00271 # in principle. 00272 # 00273 # The following two configuration informations are stored in this class. 00274 # 00275 # -# A list of configuration-set 00276 # -# A list of configuration parameter variables 00277 # 00278 # Basically, the purpose of this class is to set one of the 00279 # configuration-set in the list of (1) into parameter variables of 00280 # (2). Usually, configuration parameter variables manipulation is 00281 # performed with two-phases of configuration-set setting and 00282 # parameter variables setting. 00283 # 00284 # The configuration-set manipulations are performed by the 00285 # following functions. 00286 # 00287 # - getConfigurationSets() 00288 # - getConfigurationSet() 00289 # - setConfigurationSetValues() 00290 # - getActiveConfigurationSet() 00291 # - addConfigurationSet() 00292 # - removeConfigurationSet() 00293 # - activateConfigurationSet() 00294 # 00295 # Modification, addition, deletion, acquisition and activation of 00296 # configuration-set are performed by these functions. In order to 00297 # reflect configuration-set, which is manipulated by these 00298 # functions, on parameter variables that are used from RTC 00299 # activities, the following update() functions are used . 00300 # 00301 # - update(void) 00302 # - update(const char* config_set) 00303 # - update(const char* config_set, const char* config_param) 00304 # 00305 # Callback functors can be given to hook configuration 00306 # operation. Operations to be hooked are as follows. 00307 # 00308 # - ON_UPDATE : when update() is called 00309 # - ON_UPDATE_PARAM : when update(param) is called 00310 # - ON_SET_CONFIGURATIONSET : when setConfigurationSet() is called 00311 # - ON_ADD_CONFIGURATIONSET : when addConfigurationSet() is called 00312 # - ON_REMOVE_CONFIGURATIONSET : when removeConfigurationSet() is called 00313 # - ON_ACTIVATE_CONFIGURATIONSET: when activateConfigurationSet() is called 00314 # 00315 # @since 0.4.0 00316 # 00317 # @endif 00318 class ConfigAdmin: 00319 """ 00320 """ 00321 00322 ## 00323 # @if jp 00324 # 00325 # @brief コンストラクタ 00326 # 00327 # コンストラクタ 00328 # 00329 # @param self 00330 # @param configsets 設定対象プロパティ名 00331 # 00332 # @else 00333 # 00334 # Constructor 00335 # 00336 # @param self 00337 # @param prop The target property name for setup 00338 # 00339 # @endif 00340 # ConfigAdmin(coil::Properties& prop); 00341 def __init__(self, configsets): 00342 self._configsets = configsets 00343 self._activeId = "default" 00344 self._active = True 00345 self._changed = False 00346 self._params = [] 00347 self._emptyconf = OpenRTM_aist.Properties() 00348 self._newConfig = [] 00349 self._listeners = OpenRTM_aist.ConfigurationListeners() 00350 00351 ## 00352 # @if jp 00353 # 00354 # @brief デストラクタ 00355 # 00356 # デストラクタ。 00357 # 設定されているパラメータを削除する。 00358 # 00359 # @param self 00360 # 00361 # @else 00362 # 00363 # @brief Destructor 00364 # 00365 # @param self 00366 # 00367 # @endif 00368 def __del__(self): 00369 del self._params 00370 00371 00372 ## 00373 # @if jp 00374 # 00375 # @brief コンフィギュレーションパラメータの設定 00376 # 00377 # コンフィギュレーションパラメータと変数をバインドする 00378 # 指定した名称のコンフィギュレーションパラメータが既に存在する場合は 00379 # falseを返す。 00380 # 00381 # @param self 00382 # @param param_name コンフィギュレーションパラメータ名 00383 # @param var コンフィギュレーションパラメータ格納用変数 00384 # @param def_val コンフィギュレーションパラメータデフォルト値 00385 # @param trans コンフィギュレーションパラメータ文字列変換用関数 00386 # (デフォルト値:None) 00387 # 00388 # @return 設定結果(設定成功:true,設定失敗:false) 00389 # 00390 # @else 00391 # 00392 # @brief Setup for configuration parameters 00393 # 00394 # Bind configuration parameter to its variable. 00395 # Return false, if configuration parameter of specified name has already 00396 # existed. 00397 # 00398 # @param self 00399 # @param param_name Configuration parameter name 00400 # @param var Configuration parameter variable 00401 # @param def_val Default value of configuration parameter 00402 # @param trans Function to transform configuration parameter type into 00403 # string format 00404 # 00405 # @return Setup result (Successful:true, Failed:false) 00406 # 00407 # 00408 # @endif 00409 #template <typename VarType> 00410 # bool bindParameter(const char* param_name, VarType& var, 00411 # const char* def_val, 00412 # bool (*trans)(VarType&, const char*) = coil::stringTo) 00413 def bindParameter(self, param_name, var, def_val, trans=None): 00414 if trans is None: 00415 trans = OpenRTM_aist.stringTo 00416 00417 if self.isExist(param_name): 00418 return False 00419 00420 if not trans(var, def_val): 00421 return False 00422 00423 self._params.append(Config(param_name, var, def_val, trans)) 00424 return True 00425 00426 00427 ## 00428 # void update(void); 00429 # 00430 # @if jp 00431 # 00432 # @brief コンフィギュレーションパラメータの更新 00433 # (アクティブコンフィギュレーションセット) 00434 # 00435 # コンフィギュレーションセットが更新されている場合に、現在アクティ 00436 # ブになっているコンフィギュレーションに設定した値で、コンフィギュ 00437 # レーションパラメータの値を更新する。この処理での更新は、アクティ 00438 # ブとなっているコンフィギュレーションセットが存在している場合、前 00439 # 回の更新からコンフィギュレーションセットの内容が更新されている場 00440 # 合のみ実行される。 00441 # 00442 # @else 00443 # 00444 # @brief Update the values of configuration parameters 00445 # (Active configuration set) 00446 # 00447 # When configuration set is updated, update the configuration 00448 # parameter value to the value that is set to the current active 00449 # configuration. This update will be executed, only when an 00450 # active configuration set exists and the content of the 00451 # configuration set has been updated from the last update. 00452 # 00453 # @endif 00454 # 00455 # void update(const char* config_set); 00456 # 00457 # @if jp 00458 # 00459 # @brief コンフィギュレーションパラメータの更新(ID指定) 00460 # 00461 # コンフィギュレーション変数の値を、指定したIDを持つコンフィギュレー 00462 # ションセットの値で更新する。これにより、アクティブなコンフィギュ 00463 # レーションセットは変更されない。したがって、アクティブコンフィギュ 00464 # レーションセットとパラメータ変数の間に矛盾が発生する可能性がある 00465 # ので注意が必要である。 00466 # 00467 # 指定したIDのコンフィギュレーションセットが存在しない場合は、何も 00468 # せずに終了する。 00469 # 00470 # @param config_set 設定対象のコンフィギュレーションセットID 00471 # 00472 # @else 00473 # 00474 # @brief Update configuration parameter (By ID) 00475 # 00476 # This operation updates configuration variables by the 00477 # configuration-set with specified ID. This operation does not 00478 # change current active configuration-set. Since this operation 00479 # causes inconsistency between current active configuration set 00480 # and actual values of configuration variables, user should 00481 # carefully use it. 00482 # 00483 # This operation ends without doing anything, if the 00484 # configuration-set does not exist. 00485 # 00486 # @param config_set The target configuration set's ID to setup 00487 # 00488 # @endif 00489 # 00490 # void update(const char* config_set, const char* config_param); 00491 # 00492 # @if jp 00493 # 00494 # @brief コンフィギュレーションパラメータの更新(名称指定) 00495 # 00496 # 特定のコンフィギュレーション変数の値を、指定したIDを持つコンフィ 00497 # ギュレーションセットの値で更新する。これにより、アクティブなコン 00498 # フィギュレーションセットは変更されない。したがって、アクティブコ 00499 # ンフィギュレーションセットとパラメータ変数の間に矛盾が発生する可 00500 # 能性があるので注意が必要である。 00501 # 00502 # 指定したIDのコンフィギュレーションセットや、指定した名称のパラメー 00503 # タが存在しない場合は、何もせずに終了する。 00504 # 00505 # @param config_set コンフィギュレーションID 00506 # @param config_param コンフィギュレーションパラメータ名 00507 # 00508 # @else 00509 # 00510 # @brief Update the values of configuration parameters (By name) 00511 # 00512 # This operation updates a configuration variable by the 00513 # specified configuration parameter in the 00514 # configuration-set. This operation does not change current 00515 # active configuration-set. Since this operation causes 00516 # inconsistency between current active configuration set and 00517 # actual values of configuration variables, user should carefully 00518 # use it. 00519 # 00520 # This operation ends without doing anything, if the 00521 # configuration-set or the configuration parameter do not exist. 00522 # 00523 # @param config_set configuration-set ID. 00524 # @param config_param configuration parameter name. 00525 # 00526 # @endif 00527 # 00528 def update(self, config_set=None, config_param=None): 00529 # update(const char* config_set) 00530 if config_set and config_param is None: 00531 if self._configsets.hasKey(config_set) is None: 00532 return 00533 prop = self._configsets.getNode(config_set) 00534 for i in range(len(self._params)): 00535 if prop.hasKey(self._params[i].name): 00536 self._params[i].update(prop.getProperty(self._params[i].name)) 00537 self.onUpdate(config_set) 00538 00539 # update(const char* config_set, const char* config_param) 00540 if config_set and config_param: 00541 key = config_set 00542 key = key+"."+config_param 00543 for conf in self._params: 00544 if conf.name == config_param: 00545 conf.update(self._configsets.getProperty(key)) 00546 self.onUpdateParam(config_set, config_param) 00547 return 00548 00549 # update() 00550 if config_set is None and config_param is None: 00551 if self._changed and self._active: 00552 self.update(self._activeId) 00553 self._changed = False 00554 return 00555 00556 00557 ## 00558 # @if jp 00559 # 00560 # @brief コンフィギュレーションパラメータの存在確認 00561 # 00562 # 指定した名称を持つコンフィギュレーションパラメータが存在するか確認する。 00563 # 00564 # @param self 00565 # @param param_name コンフィギュレーションパラメータ名称。 00566 # 00567 # @return 存在確認結果(パラメータあり:true,パラメータなし:false) 00568 # 00569 # @else 00570 # 00571 # @brief Check the existence of configuration parameters 00572 # 00573 # Check the existence of configuration parameters of specified name. 00574 # 00575 # @param self 00576 # @param name Configuration parameter name 00577 # 00578 # @return Result of existance confirmation 00579 # (Parameters exist:true, else:false) 00580 # 00581 # @endif 00582 # bool isExist(const char* name); 00583 def isExist(self, param_name): 00584 if not self._params: 00585 return False 00586 00587 for conf in self._params: 00588 if conf.name == param_name: 00589 return True 00590 00591 return False 00592 00593 00594 ## 00595 # @if jp 00596 # 00597 # @brief コンフィギュレーションパラメータの変更確認 00598 # 00599 # コンフィギュレーションパラメータが変更されたか確認する。 00600 # 00601 # @param self 00602 # 00603 # @return 変更確認結果(変更あり:true、変更なし:false) 00604 # 00605 # @else 00606 # 00607 # @brief Confirm to change configuration parameters 00608 # 00609 # Confirm that configuration parameters have changed. 00610 # 00611 # @param self 00612 # 00613 # @return Result of change confirmation 00614 # (There is a change:true、No change:false) 00615 # 00616 # @endif 00617 # bool isChanged(void) {return m_changed;} 00618 def isChanged(self): 00619 return self._changed 00620 00621 00622 ## 00623 # @if jp 00624 # 00625 # @brief アクティブ・コンフィギュレーションセットIDの取得 00626 # 00627 # 現在アクティブなコンフィギュレーションセットのIDを取得する。 00628 # 00629 # @param self 00630 # 00631 # @return アクティブ・コンフィギュレーションセットID 00632 # 00633 # @else 00634 # 00635 # @brief Get ID of active configuration set 00636 # 00637 # Get ID of the current active configuration set. 00638 # 00639 # @param self 00640 # 00641 # @return The active configuration set ID 00642 # 00643 # @endif 00644 # const char* getActiveId(void); 00645 def getActiveId(self): 00646 return self._activeId 00647 00648 00649 ## 00650 # @if jp 00651 # 00652 # @brief コンフィギュレーションセットの存在確認 00653 # 00654 # 指定したコンフィギュレーションセットが存在するか確認する。 00655 # 00656 # @param self 00657 # @param config_id 確認対象コンフィギュレーションセットID 00658 # 00659 # @return 存在確認結果(指定したConfigSetあり:true、なし:false) 00660 # 00661 # @else 00662 # 00663 # @brief Check the existence of configuration set 00664 # 00665 # Check the existence of specified configuration set. 00666 # 00667 # @param self 00668 # @param config_id ID of target configuration set for confirmation 00669 # @return Result of existence confirmation 00670 # (Specified ConfigSet exists:true, else:false) 00671 # @endif 00672 # bool haveConfig(const char* config_id); 00673 def haveConfig(self, config_id): 00674 if self._configsets.hasKey(config_id) is None: 00675 return False 00676 else: 00677 return True 00678 00679 00680 ## 00681 # @if jp 00682 # 00683 # @brief コンフィギュレーションセットのアクティブ化確認 00684 # 00685 # コンフィギュレーションセットがアクティブ化されているか確認する。 00686 # 00687 # @param self 00688 # 00689 # @return 状態確認結果(アクティブ状態:true、非アクティブ状態:false) 00690 # 00691 # @else 00692 # 00693 # @brief Confirm to activate configuration set 00694 # 00695 # Confirm that configuration set has been activated. 00696 # 00697 # @param self 00698 # 00699 # @return Result of state confirmation 00700 # (Active state:true, Inactive state:false) 00701 # 00702 # @endif 00703 # bool isActive(void); 00704 def isActive(self): 00705 return self._active 00706 00707 00708 ## 00709 # @if jp 00710 # 00711 # @brief 全コンフィギュレーションセットの取得 00712 # 00713 # 設定されている全コンフィギュレーションセットを取得する。 00714 # 00715 # @param self 00716 # 00717 # @return 全コンフィギュレーションセット 00718 # 00719 # @else 00720 # 00721 # @brief Get all configuration sets 00722 # 00723 # Get all specified configuration sets 00724 # 00725 # @param self 00726 # 00727 # @return All configuration sets 00728 # 00729 # @endif 00730 # const std::vector<coil::Properties*>& getConfigurationSets(void); 00731 def getConfigurationSets(self): 00732 return self._configsets.getLeaf() 00733 00734 00735 ## 00736 # @if jp 00737 # 00738 # @brief 指定したIDのコンフィギュレーションセットの取得 00739 # 00740 # IDで指定したコンフィギュレーションセットを取得する。 00741 # 指定したコンフィギュレーションセットが存在しない場合は、 00742 # 空のコンフィギュレーションセットを返す。 00743 # 00744 # @param self 00745 # @param config_id 取得対象コンフィギュレーションセットのID 00746 # 00747 # @return コンフィギュレーションセット 00748 # 00749 # @else 00750 # 00751 # @brief Get a configuration set by specified ID 00752 # 00753 # Get a configuration set that was specified by ID 00754 # Return empty configuration set, if a configuration set of 00755 # specified ID doesn't exist. 00756 # 00757 # @param self 00758 # @param config_id ID of the target configuration set for getting 00759 # 00760 # @return The configuration set 00761 # 00762 # @endif 00763 # const coil::Properties& getConfigurationSet(const char* config_id); 00764 def getConfigurationSet(self, config_id): 00765 prop = self._configsets.getNode(config_id) 00766 if prop is None: 00767 return self._emptyconf 00768 return prop 00769 00770 00771 ## 00772 # @if jp 00773 # 00774 # @brief 指定したプロパティのコンフィギュレーションセットへの追加 00775 # 00776 # 指定したプロパティをコンフィギュレーションセットへ追加する。 00777 # 00778 # @param self 00779 # @param config_set 追加するプロパティ 00780 # 00781 # @return 追加処理実行結果(追加成功:true、追加失敗:false) 00782 # 00783 # @else 00784 # 00785 # @brief Add to configuration set from specified property 00786 # 00787 # Add specified property to configuration set. 00788 # 00789 # @param self 00790 # @param configuration_set Property to add 00791 # 00792 # @return Add result (Successful:true, Failed:false) 00793 # 00794 # @endif 00795 # bool setConfigurationSetValues(const coil::Properties& config_set) 00796 def setConfigurationSetValues(self, config_set): 00797 if config_set.getName() == "" or config_set.getName() is None: 00798 return False 00799 00800 if not self._configsets.hasKey(config_set.getName()): 00801 return False 00802 00803 p = self._configsets.getNode(config_set.getName()) 00804 if p is None: 00805 return False 00806 00807 p.mergeProperties(config_set) 00808 self._changed = True 00809 self._active = False 00810 self.onSetConfigurationSet(config_set) 00811 return True 00812 00813 00814 ## 00815 # @if jp 00816 # 00817 # @brief アクティブ・コンフィギュレーションセットを取得 00818 # 00819 # 現在アクティブとなっているコンフィギュレーションセットを取得する。 00820 # アクティブとなっているコンフィギュレーションセットが存在しない場合は、 00821 # 空のコンフィギュレーションセット を返す。 00822 # 00823 # @param self 00824 # 00825 # @return アクティブ・コンフィギュレーションセット 00826 # 00827 # @else 00828 # 00829 # @brief Get the active configuration set 00830 # 00831 # Get the current active configuration set. 00832 # Return empty configuration set, if an active configuration set 00833 # doesn't exist. 00834 # 00835 # @param self 00836 # @return The active configuration set 00837 # 00838 # @endif 00839 # const coil::Properties& getActiveConfigurationSet(void); 00840 def getActiveConfigurationSet(self): 00841 p = self._configsets.getNode(self._activeId) 00842 if p is None: 00843 return self._emptyconf 00844 00845 return p 00846 00847 00848 ## 00849 # @if jp 00850 # 00851 # @brief コンフィギュレーションセットに設定値を追加 00852 # 00853 # コンフィギュレーションセットに設定値を追加する。 00854 # 00855 # @param self 00856 # @param configset 追加するプロパティ 00857 # 00858 # @return 追加処理結果(追加成功:true、追加失敗:false) 00859 # 00860 # @else 00861 # 00862 # @brief Add the configuration value to configuration set 00863 # 00864 # Add the configuration value to configuration set 00865 # 00866 # @param self 00867 # @param configuration_set Property to add 00868 # 00869 # @return Add Result (Successful:true, Failed:false) 00870 # 00871 # @endif 00872 # bool addConfigurationSet(const coil::Properties& configuration_set); 00873 def addConfigurationSet(self, configset): 00874 if self._configsets.hasKey(configset.getName()): 00875 return False 00876 node = configset.getName() 00877 00878 # Create node 00879 self._configsets.createNode(node) 00880 00881 p = self._configsets.getNode(node) 00882 if p is None: 00883 return False 00884 00885 p.mergeProperties(configset) 00886 self._newConfig.append(node) 00887 00888 self._changed = True 00889 self._active = False 00890 self.onAddConfigurationSet(configset) 00891 return True 00892 00893 00894 ## 00895 # @if jp 00896 # 00897 # @brief コンフィギュレーションセットの削除 00898 # 00899 # 指定したIDのコンフィギュレーションセットを削除する。 00900 # 00901 # 指定したIDのコンフィギュレーションセットが存在しない場合は、 00902 # falseを返す。削除可能なコンフィギュレーションセットは、 00903 # addConfigruationSet() によって追加したコンフィギュレーションセッ 00904 # トのみであり、デフォルトコンフィギュレーションセット、コンポーネ 00905 # ント起動時にファイルから読み込まれるコンフィギュレーションセット 00906 # は削除することができない。 00907 # 00908 # また、指定したコンフィギュレーションセットが現在アクティブである 00909 # 場合には、いかなるコンフィギュレーションセットでも削除できない。 00910 # 00911 # この関数により実際にコンフィギュレーションセットが削除された場合、 00912 # setOnRemoveConfigurationSet() でセットされたコールバック関数が呼 00913 # び出される。 00914 # 00915 # @param self 00916 # @param config_id 削除対象コンフィギュレーションセットのID 00917 # 00918 # @return 削除処理結果(削除成功:true、削除失敗:false) 00919 # 00920 # @else 00921 # 00922 # @brief Remove the configuration set 00923 # 00924 # Remove the configuration set of specified ID Return empty 00925 # configuration set, if a configuration set of specified ID 00926 # doesn't exist. 00927 # 00928 # The configuration-sets that can be removed by this function are 00929 # only configuration-sets newly added by the 00930 # addConfigurationSet() function. The configuration that can be 00931 # removed by this function is only newly added configuration-set 00932 # by addConfigurationSet() function. The "default" 00933 # configuration-set and configurationi-sets that is loaded from 00934 # configuration file cannot be removed. 00935 # 00936 # If the specified configuration is active currently, any 00937 # configurations are not deleted. 00938 # 00939 # Callback functions that are set by 00940 # addOnRemovedConfigurationSet() will be called if a 00941 # configuration-set is deleted actually by this function. 00942 # 00943 # @param self 00944 # @param config_id ID of the target configuration set for remove 00945 # 00946 # @return Remove result (Successful:true, Failed:false) 00947 # 00948 # @endif 00949 # 00950 # bool removeConfigurationSet(const char* config_id); 00951 def removeConfigurationSet(self, config_id): 00952 if config_id == "default": 00953 return False 00954 if self._activeId == config_id: 00955 return False 00956 00957 find_flg = False 00958 # removeable config-set is only config-sets newly added 00959 for (idx,conf) in enumerate(self._newConfig): 00960 if conf == config_id: 00961 find_flg = True 00962 break 00963 00964 00965 if not find_flg: 00966 return False 00967 00968 p = self._configsets.getNode(config_id) 00969 if p: 00970 p.getRoot().removeNode(config_id) 00971 del p 00972 00973 del self._newConfig[idx] 00974 00975 self._changed = True 00976 self._active = False 00977 self.onRemoveConfigurationSet(config_id) 00978 return True 00979 00980 00981 ## 00982 # @if jp 00983 # 00984 # @brief コンフィギュレーションセットのアクティブ化 00985 # 00986 # 指定したIDのコンフィギュレーションセットをアクティブ化する。 00987 # 指定したIDのコンフィギュレーションセットが存在しない場合は、 00988 # falseを返す。 00989 # 00990 # @param self 00991 # @param config_id 削除対象コンフィギュレーションセットのID 00992 # 00993 # @return アクティブ処理結果(成功:true、失敗:false) 00994 # 00995 # @else 00996 # 00997 # @brief Activate the configuration set 00998 # 00999 # Activate the configuration set of specified ID 01000 # Return empty configuration set, if a configuration set of 01001 # specified ID doesn't exist. 01002 # 01003 # @param self 01004 # @param config_id ID of the target configuration set for remove 01005 # 01006 # @return Activate result (Remove success:true、Remove failure:false) 01007 # 01008 # @endif 01009 # bool activateConfigurationSet(const char* config_id); 01010 def activateConfigurationSet(self, config_id): 01011 if config_id is None: 01012 return False 01013 01014 # '_<conf_name>' is special configuration set name 01015 if config_id[0] == '_': 01016 return False 01017 01018 if not self._configsets.hasKey(config_id): 01019 return False 01020 self._activeId = config_id 01021 self._active = True 01022 self._changed = True 01023 self.onActivateSet(config_id) 01024 return True 01025 01026 01027 #------------------------------------------------------------ 01028 # obsolete functions 01029 # 01030 01031 ## 01032 # @if jp 01033 # 01034 # @brief OnUpdate のコールバックの設定 01035 # 01036 # OnUpdate で呼ばれるコールバックのオブジェクトを設定する。 01037 # 01038 # @param self 01039 # @param cb OnUpdateCallback型のオブジェクト 01040 # 01041 # @else 01042 # 01043 # @brief Set callback that is called by OnUpdate. 01044 # 01045 # @param self 01046 # @param cb OnUpdateCallback type object 01047 # 01048 # @endif 01049 # 01050 # void setOnUpdate(OnUpdateCallback* cb); 01051 def setOnUpdate(self, cb): 01052 print "setOnUpdate function is obsolete." 01053 print "Use addConfigurationSetNameListener instead." 01054 self._listeners.configsetname_[OpenRTM_aist.ConfigurationSetNameListenerType.ON_UPDATE_CONFIG_SET].addListener(cb, False) 01055 return 01056 01057 01058 ## 01059 # @if jp 01060 # 01061 # @brief OnUpdateParam のコールバックの設定 01062 # 01063 # OnUpdateParam で呼ばれるコールバックのオブジェクトを設定する。 01064 # 01065 # @param self 01066 # @param cb OnUpdateParamCallback型のオブジェクト 01067 # 01068 # @else 01069 # 01070 # @brief Set callback that is called by OnUpdateParam. 01071 # 01072 # @param self 01073 # @param cb OnUpdateParamCallback type object 01074 # 01075 # @endif 01076 # 01077 # void setOnUpdateParam(OnUpdateParamCallback* cb); 01078 def setOnUpdateParam(self, cb): 01079 print "setOnUpdateParam function is obsolete." 01080 print "Use addConfigurationParamListener instead." 01081 self._listeners.configparam_[OpenRTM_aist.ConfigurationParamListenerType.ON_UPDATE_CONFIG_PARAM].addListener(cb, False) 01082 return 01083 01084 01085 ## 01086 # @if jp 01087 # 01088 # @brief OnSetConfigurationSet のコールバックの設定 01089 # 01090 # OnSetConfigurationSet で呼ばれるコールバックのオブジェクトを設定する。 01091 # 01092 # @param self 01093 # @param cb OnSetConfigurationSetCallback型のオブジェクト 01094 # 01095 # @else 01096 # 01097 # @brief Set callback that is called by OnSetConfiguration. 01098 # 01099 # @param self 01100 # @param cb OnSetConfigurationSetCallback type object 01101 # 01102 # @endif 01103 # 01104 # void setOnSetConfigurationSet(OnSetConfigurationSetCallback* cb); 01105 def setOnSetConfigurationSet(self, cb): 01106 print "setOnSetConfigurationSet function is obsolete." 01107 print "Use addConfigurationSetListener instead." 01108 self._listeners.configset_[OpenRTM_aist.ConfigurationSetListenerType.ON_SET_CONFIG_SET].addListener(cb, False) 01109 return 01110 01111 01112 ## 01113 # @if jp 01114 # 01115 # @brief OnAddConfigurationSet のコールバックの設定 01116 # 01117 # OnAddConfigurationSet で呼ばれるコールバックのオブジェクトを設定する。 01118 # 01119 # @param self 01120 # @param cb OnAddConfigurationAddCallback型のオブジェクト 01121 # 01122 # @else 01123 # 01124 # @brief Set callback that is called by OnSetConfiguration. 01125 # 01126 # @param self 01127 # @param cb OnSetConfigurationSetCallback type object 01128 # 01129 # @endif 01130 # 01131 # void setOnAddConfigurationSet(OnAddConfigurationAddCallback* cb); 01132 def setOnAddConfigurationSet(self, cb): 01133 print "setOnAddConfigurationSet function is obsolete." 01134 print "Use addConfigurationSetListener instead." 01135 self._listeners.configset_[OpenRTM_aist.ConfigurationSetListenerType.ON_ADD_CONFIG_SET].addListener(cb, False) 01136 return 01137 01138 01139 ## 01140 # @if jp 01141 # 01142 # @brief OnRemoveConfigurationSet のコールバックの設定 01143 # 01144 # OnRemoveConfiguration で呼ばれるコールバックのオブジェクトを設定する。 01145 # 01146 # @param self 01147 # @param cb OnRemoveConfigurationSetCallback型のオブジェクト 01148 # 01149 # @else 01150 # 01151 # @brief Set callback that is called by OnRemoveConfigurationSet. 01152 # 01153 # @param self 01154 # @param cb OnRemoveConfigurationSetCallback type object 01155 # 01156 # @endif 01157 # 01158 # void setOnRemoveConfigurationSet(OnRemoveConfigurationSetCallback* cb); 01159 def setOnRemoveConfigurationSet(self, cb): 01160 print "setOnRemoveConfigurationSet function is obsolete." 01161 print "Use addConfigurationSetNameListener instead." 01162 self._listeners.configsetname_[OpenRTM_aist.ConfigurationSetNameListenerType.ON_REMOVE_CONFIG_SET].addListener(cb, False) 01163 return 01164 01165 01166 ## 01167 # @if jp 01168 # 01169 # @brief OnActivateSet のコールバックの設定 01170 # 01171 # OnActivateSet で呼ばれるコールバックのオブジェクトを設定する。 01172 # 01173 # @param self 01174 # @param cb OnActivateSetCallback型のオブジェクト 01175 # 01176 # @else 01177 # 01178 # @brief Set callback that is called by OnActivateSet. 01179 # 01180 # @param self 01181 # @param cb OnActivateSetCallback type object 01182 # 01183 # @endif 01184 # 01185 # void setOnActivateSet(OnActivateSetCallback* cb); 01186 def setOnActivateSet(self, cb): 01187 print "setOnActivateSet function is obsolete." 01188 print "Use addConfigurationSetNameListener instead." 01189 self._listeners.configsetname_[OpenRTM_aist.ConfigurationSetNameListenerType.ON_ACTIVATE_CONFIG_SET].addListener(cb, False) 01190 return 01191 01192 # 01193 # end of obsolete functions 01194 #------------------------------------------------------------ 01195 01196 ## 01197 # @if jp 01198 # 01199 # @brief ConfigurationParamListener を追加する 01200 # 01201 # update(const char* config_set, const char* config_param) が呼ばれた際に 01202 # コールされるリスナ ConfigurationParamListener を追加する。 01203 # type には現在のところ ON_UPDATE_CONFIG_PARAM のみが入る。 01204 # 01205 # @param type ConfigurationParamListenerType型の値。 01206 # ON_UPDATE_CONFIG_PARAM がある。 01207 # 01208 # @param listener ConfigurationParamListener 型のリスナオブジェクト。 01209 # @param autoclean リスナオブジェクトを自動で削除するかどうかのフラグ 01210 # 01211 # @else 01212 # 01213 # @brief Adding ConfigurationParamListener 01214 # 01215 # This function adds a listener object which is called when 01216 # update(const char* config_set, const char* config_param) is 01217 # called. In the type argument, currently only 01218 # ON_UPDATE_CONFIG_PARAM is allowed. 01219 # 01220 # @param type ConfigurationParamListenerType value 01221 # ON_UPDATE_CONFIG_PARAM is only allowed. 01222 # 01223 # @param listener ConfigurationParamListener listener object. 01224 # @param autoclean a flag whether if the listener object autocleaned. 01225 # 01226 # @endif 01227 # 01228 # void addConfigurationParamListener(ConfigurationParamListenerType type, 01229 # ConfigurationParamListener* listener, 01230 # bool autoclean = true); 01231 def addConfigurationParamListener(self, type, listener, autoclean = True): 01232 self._listeners.configparam_[type].addListener(listener, autoclean) 01233 return 01234 01235 01236 ## 01237 # @if jp 01238 # 01239 # @brief ConfigurationParamListener を削除する 01240 # 01241 # addConfigurationParamListener で追加されたリスナオブジェクトを削除する。 01242 # 01243 # @param type ConfigurationParamListenerType型の値。 01244 # ON_UPDATE_CONFIG_PARAM がある。 01245 # @param listener 与えたリスナオブジェクトへのポインタ 01246 # 01247 # @else 01248 # 01249 # @brief Removing ConfigurationParamListener 01250 # 01251 # This function removes a listener object which is added by 01252 # addConfigurationParamListener() function. 01253 # 01254 # @param type ConfigurationParamListenerType value 01255 # ON_UPDATE_CONFIG_PARAM is only allowed. 01256 # @param listener a pointer to ConfigurationParamListener listener object. 01257 # 01258 # @endif 01259 # 01260 # void removeConfigurationParamListener(ConfigurationParamListenerType type, 01261 # ConfigurationParamListener* listener); 01262 def removeConfigurationParamListener(self, type, listener): 01263 self._listeners.configparam_[type].removeListener(listener) 01264 return 01265 01266 01267 ## 01268 # @if jp 01269 # 01270 # @brief ConfigurationSetListener を追加する 01271 # 01272 # ConfigurationSet が更新されたときなどに呼ばれるリスナ 01273 # ConfigurationSetListener を追加する。設定可能なイベントは以下の 01274 # 2種類がある。 01275 # 01276 # - ON_SET_CONFIG_SET: setConfigurationSetValues() で 01277 # ConfigurationSet に値が設定された場合。 01278 # - ON_ADD_CONFIG_SET: addConfigurationSet() で新しい 01279 # ConfigurationSet が追加された場合。 01280 # 01281 # @param type ConfigurationSetListenerType型の値。 01282 # @param listener ConfigurationSetListener 型のリスナオブジェクト。 01283 # @param autoclean リスナオブジェクトを自動で削除するかどうかのフラグ 01284 # 01285 # @else 01286 # 01287 # @brief Adding ConfigurationSetListener 01288 # 01289 # This function add a listener object which is called when 01290 # ConfigurationSet is updated. Available events are the followings. 01291 # 01292 # @param type ConfigurationSetListenerType value 01293 # @param listener ConfigurationSetListener listener object. 01294 # @param autoclean a flag whether if the listener object autocleaned. 01295 # 01296 # @endif 01297 # 01298 # void addConfigurationSetListener(ConfigurationSetListenerType type, 01299 # ConfigurationSetListener* listener, 01300 # bool autoclean = true); 01301 def addConfigurationSetListener(self, type, listener, autoclean = True): 01302 self._listeners.configset_[type].addListener(listener, autoclean) 01303 return 01304 01305 01306 ## 01307 # @if jp 01308 # 01309 # @brief ConfigurationSetListener を削除する 01310 # 01311 # addConfigurationSetListener で追加されたリスナオブジェクトを削除する。 01312 # 01313 # @param type ConfigurationSetListenerType型の値。 01314 # @param listener 与えたリスナオブジェクトへのポインタ 01315 # 01316 # @else 01317 # 01318 # @brief Removing ConfigurationSetListener 01319 # 01320 # This function removes a listener object which is added by 01321 # addConfigurationSetListener() function. 01322 # 01323 # @param type ConfigurationSetListenerType value 01324 # @param listener a pointer to ConfigurationSetListener listener object. 01325 # 01326 # @endif 01327 # void removeConfigurationSetListener(ConfigurationSetListenerType type, 01328 # ConfigurationSetListener* listener); 01329 def removeConfigurationSetListener(self, type, listener): 01330 self._listeners.configset_[type].removeListener(listener) 01331 return 01332 01333 01334 ## 01335 # @if jp 01336 # 01337 # @brief ConfigurationSetNameListener を追加する 01338 # 01339 # ConfigurationSetName が更新されたときなどに呼ばれるリスナ 01340 # ConfigurationSetNameListener を追加する。設定可能なイベントは以下の 01341 # 3種類がある。 01342 # 01343 # - ON_UPDATE_CONFIG_SET: ある ConfigurationSet がアップデートされた 01344 # - ON_REMOVE_CONFIG_SET: ある ConfigurationSet が削除された 01345 # - ON_ACTIVATE_CONFIG_SET: ある ConfigurationSet がアクティブ化された 01346 # 01347 # @param type ConfigurationSetNameListenerType型の値。 01348 # @param listener ConfigurationSetNameListener 型のリスナオブジェクト。 01349 # @param autoclean リスナオブジェクトを自動で削除するかどうかのフラグ 01350 # 01351 # @else 01352 # 01353 # @brief Adding ConfigurationSetNameListener 01354 # 01355 # This function add a listener object which is called when 01356 # ConfigurationSetName is updated. Available events are the followings. 01357 # 01358 # - ON_UPDATE_CONFIG_SET: A ConfigurationSet has been updated. 01359 # - ON_REMOVE_CONFIG_SET: A ConfigurationSet has been deleted. 01360 # - ON_ACTIVATE_CONFIG_SET: A ConfigurationSet has been activated. 01361 # 01362 # @param type ConfigurationSetNameListenerType value 01363 # @param listener ConfigurationSetNameListener listener object. 01364 # @param autoclean a flag whether if the listener object autocleaned. 01365 # 01366 # @endif 01367 # void 01368 # addConfigurationSetNameListener(ConfigurationSetNameListenerType type, 01369 # ConfigurationSetNameListener* listener, 01370 # bool autoclean = true); 01371 def addConfigurationSetNameListener(self, type, listener, autoclean = True): 01372 self._listeners.configsetname_[type].addListener(listener, autoclean) 01373 return 01374 01375 01376 ## 01377 # @if jp 01378 # 01379 # @brief ConfigurationSetNameListener を削除する 01380 # 01381 # addConfigurationSetNameListener で追加されたリスナオブジェクトを 01382 # 削除する。 01383 # 01384 # @param type ConfigurationSetNameListenerType型の値。 01385 # ON_UPDATE_CONFIG_PARAM がある。 01386 # @param listener 与えたリスナオブジェクトへのポインタ 01387 # 01388 # @else 01389 # 01390 # @brief Removing ConfigurationSetNameListener 01391 # 01392 # This function removes a listener object which is added by 01393 # addConfigurationSetNameListener() function. 01394 # 01395 # @param type ConfigurationSetNameListenerType value 01396 # ON_UPDATE_CONFIG_PARAM is only allowed. 01397 # @param listener a pointer to ConfigurationSetNameListener 01398 # listener object. 01399 # 01400 # @endif 01401 # void 01402 # removeConfigurationSetNameListener(ConfigurationSetNameListenerType type, 01403 # ConfigurationSetNameListener* listener); 01404 def removeConfigurationSetNameListener(self, type, listener): 01405 self._listeners.configsetname_[type].removeListener(listener) 01406 return 01407 01408 01409 ## 01410 # @if jp 01411 # 01412 # @brief コンフィギュレーションパラメータの更新(ID指定)時にコールされる 01413 # 01414 # 設定されてるコールバックオブジェクトを呼び出す。 01415 # 01416 # @param self 01417 # @param config_set 設定対象のコンフィギュレーションセットID 01418 # 01419 # @else 01420 # 01421 # @brief When the configuration parameter is updated, it is called. 01422 # 01423 # Call the set callback object. 01424 # 01425 # @param self 01426 # @param config_set The target configuration set's ID to setup 01427 # 01428 # @endif 01429 # 01430 # void onUpdate(const char* config_set); 01431 def onUpdate(self, config_set): 01432 self._listeners.configsetname_[OpenRTM_aist.ConfigurationSetNameListenerType.ON_UPDATE_CONFIG_SET].notify(config_set) 01433 return 01434 01435 01436 ## 01437 # @if jp 01438 # 01439 # @brief コンフィギュレーションパラメータの更新(名称指定)時にコールされる 01440 # 01441 # 設定されてるコールバックオブジェクトを呼び出す。 01442 # 01443 # @param self 01444 # @param config_set コンフィギュレーションID 01445 # @param config_param コンフィギュレーションパラメータ名 01446 # 01447 # @else 01448 # 01449 # @brief When the configuration parameter is updated, it is called. 01450 # 01451 # Call the set callback object. 01452 # 01453 # @param self 01454 # @param config_set configuration-set ID. 01455 # @param config_param configuration parameter name. 01456 # 01457 # @endif 01458 # 01459 # void onUpdateParam(const char* config_set, const char* config_param); 01460 def onUpdateParam(self, config_set, config_param): 01461 self._listeners.configparam_[OpenRTM_aist.ConfigurationParamListenerType.ON_UPDATE_CONFIG_PARAM].notify(config_set, 01462 config_param) 01463 return 01464 01465 01466 ## 01467 # @if jp 01468 # 01469 # @brief コンフィギュレーションセットへの追加時にコールされる 01470 # 01471 # 設定されてるコールバックオブジェクトを呼び出す。 01472 # 01473 # @param self 01474 # @param configuration_set プロパティ 01475 # 01476 # @else 01477 # 01478 # @brief Called when the property is added to the configuration set 01479 # 01480 # Call the set callback object. 01481 # 01482 # @param self 01483 # @param configuration_set property 01484 # 01485 # @endif 01486 # 01487 # void onSetConfigurationSet(const coil::Properties& config_set); 01488 def onSetConfigurationSet(self, config_set): 01489 self._listeners.configset_[OpenRTM_aist.ConfigurationSetListenerType.ON_SET_CONFIG_SET].notify(config_set) 01490 return 01491 01492 01493 ## 01494 # @if jp 01495 # 01496 # @brief 設定値が追加されたときにコールされる。 01497 # 01498 # 設定されてるコールバックオブジェクトを呼び出す。 01499 # 01500 # @param self 01501 # @param configuration_set プロパティ 01502 # 01503 # @else 01504 # 01505 # @brief Called when a set value is added to the configuration set 01506 # 01507 # Call the set callback object. 01508 # 01509 # @param self 01510 # @param configuration_set property 01511 # 01512 # @endif 01513 # 01514 # void onAddConfigurationSet(const coil::Properties& config_set); 01515 def onAddConfigurationSet(self, config_set): 01516 self._listeners.configset_[OpenRTM_aist.ConfigurationSetListenerType.ON_ADD_CONFIG_SET].notify(config_set) 01517 return 01518 01519 01520 ## 01521 # @if jp 01522 # 01523 # @brief セットが削除されてるときにコールされる。 01524 # 01525 # 設定されてるコールバックオブジェクトを呼び出す。 01526 # 01527 # @param self 01528 # @param config_id プロパティ 01529 # 01530 # @else 01531 # 01532 # @brief Called when the configuration set has been deleted 01533 # 01534 # Call the set callback object. 01535 # 01536 # @param self 01537 # @param config_id property 01538 # 01539 # @endif 01540 # 01541 # void onRemoveConfigurationSet(const char* config_id); 01542 def onRemoveConfigurationSet(self, config_id): 01543 self._listeners.configsetname_[OpenRTM_aist.ConfigurationSetNameListenerType.ON_REMOVE_CONFIG_SET].notify(config_id) 01544 return 01545 01546 01547 ## 01548 # @if jp 01549 # 01550 # @brief セットがアクティブ化されたときにコールされる。 01551 # 01552 # 設定されてるコールバックオブジェクトを呼び出す。 01553 # 01554 # @param self 01555 # @param config_id プロパティ 01556 # 01557 # @else 01558 # 01559 # @brief Called when the configuration set is made active 01560 # 01561 # Call the set callback object. 01562 # 01563 # @param self 01564 # @param config_id property 01565 # 01566 # @endif 01567 # 01568 # void onActivateSet(const char* config_id); 01569 def onActivateSet(self, config_id): 01570 self._listeners.configsetname_[OpenRTM_aist.ConfigurationSetNameListenerType.ON_ACTIVATE_CONFIG_SET].notify(config_id) 01571 return 01572 01573 01574 class find_conf: 01575 def __init__(self, name): 01576 self._name = name 01577 return 01578 01579 def __call__(self, conf): 01580 if conf is None or conf is 0: 01581 return False 01582 01583 return self._name == conf.name