def get_host_list(self, host_name): cache = settings.get_cache() host_list = [ settings.HashSetting(key_name).get('host') for key_name in cache.keys('tango.info.*') ] return _filter(host_name, host_list)
def get_csdb_server_list(self): cache = settings.get_cache() exported_devices = cache.keys('tango.info.sys/database*') result = [] for key_name in exported_devices: info = settings.HashSetting(key_name) result.append(info.get('IOR')) return result
def copy_from_state(self, name): """ this will copy the configuration into the current """ tmp_hash = settings.HashSetting('%s:%s' % (self.name, name)) self._counters_settings.clear() for k, v in tmp_hash.iteritems(): self._counters_settings[k] = v
def get_settings(self, json_value): data = json.loads(json_value) result = {} if isinstance(data, dict): data = data.values() elif isinstance(data, (str, unicode)): data = data, for element in data: if element: setting = settings.HashSetting(element) result[element] = setting.get_all() return json.dumps(result)
def initialize(self, *args, **kws): hash_name = 'controller.id31diffract' ctrl_name = self.config.get('name', default=None) if ctrl_name: hash_name += '.%s' % ctrl_name self.par_settings = settings.HashSetting(hash_name) if not len(self.par_settings): for name, (typ, default) in self.CtrlPars.items(): self.par_settings[name] = default self.has_extra = dict([(mot, False) for mot in self.ParamMotors]) super(ID31Diffract, self).initialize(*args, **kws)
def get_host_server_list(self, host_name): result = [] wildcard = host_name.replace('*','.*') m = re.compile(wildcard) cache = settings.get_cache() for key_name in cache.keys('tango.info.*'): host = settings.HashSetting(key_name).get('host') if not m.match(host): continue dev_name = key_name.replace('tango.info.','') dev_node = self._tango_name_2_node.get(dev_name) if dev_node is None: continue server_node = dev_node.parent result.append('%s/%s' % (server_node.get('server',''),server_node.get('personal_name'))) return result
def set(self, axis, setting_name, value): ''' * set setting (if updated) * send event * write ''' old_value = get_axis_setting(axis, setting_name) if value == old_value: return convert_func = self.convert_funcs.get(setting_name) if convert_func is not None: value = convert_func(value) if setting_name not in ('state', 'position'): settings.HashSetting("axis.%s" % axis.name)[setting_name] = value axis._beacon_channels[setting_name].value = value event.send(axis, 'internal_' + setting_name, value)
def get_axis_setting(axis, setting_name): hash_setting = settings.HashSetting("axis.%s" % axis.name) if len(hash_setting) == 0: # there is no setting value in cache setting_value = get_from_config(axis, setting_name) if setting_value is not None: # write setting to cache hash_setting[setting_name] = setting_value else: setting_value = hash_setting.get(setting_name) if setting_value is None: # take setting value from config setting_value = get_from_config(axis, setting_name) if setting_value is not None: # write setting to cache hash_setting[setting_name] = setting_value try: beacon_channels = axis._beacon_channels except AttributeError: beacon_channels = dict() axis._beacon_channels = beacon_channels try: chan = beacon_channels[setting_name] except KeyError: chan_name = "axis.%s.%s" % (axis.name, setting_name) cb = functools.partial(setting_update_from_channel, setting_name=setting_name, axis=axis) if setting_value is None: chan = channels.Channel(chan_name, callback=cb) else: chan = channels.Channel(chan_name, default_value=setting_value, callback=cb) chan._setting_update_cb = cb beacon_channels[setting_name] = chan else: if setting_value is None: setting_value = chan.value return setting_value
def __init__(self, name, config_tree): """MeasurementGroup is a helper to activate detectors for counting procedure. name -- the measurement name config_tree -- measurement configuration. in this dictionary we need to have: counters -- a name list of available counters default -- if True set as default measurement """ counters_list = config_tree.get('counters') if counters_list is None: raise ValueError("MeasurementGroup: should have a counters list") self.name = name self._available_counters = list(counters_list) self._current_config = settings.SimpleSetting('%s' % name, default_value='default') # disabled counters self._counters_settings = settings.HashSetting( '%s:%s' % (name, self._current_config.get()))
def _get_export_device_info(self,dev_name): key_name = 'tango.info.%s' % dev_name return settings.HashSetting(key_name)
def switch_state(self, name): self._current_config.set(name) self._counters_settings = settings.HashSetting('%s:%s' % (self.name, name))
def set_settings(self, json_value): data = json.loads(json_value) for key, value in data.items(): setting = settings.HashSetting(key) setting.set(value)