diff --git a/expert_gui_core/comm/ccda.py b/expert_gui_core/comm/ccda.py index f9a13f03a16ab66975a8535ad850b15b07dc6903..f4262b135302b079d6336abc1a6f3e4ce60f3ef4 100644 --- a/expert_gui_core/comm/ccda.py +++ b/expert_gui_core/comm/ccda.py @@ -188,7 +188,7 @@ def get_class_from_device(device): return info -def get_fecs_from_class(classes_to_find=[], operational=True): +def get_fecs_from_class(classes_to_find=[], operational=True, acc=None): """ Get all fec names running specific FESA class using binary name _DU_M. @@ -203,14 +203,14 @@ def get_fecs_from_class(classes_to_find=[], operational=True): for class_ in classes_to_find: str_class = str_class + "#" + class_ - key_cache = "get_fecs_from_class#" + str(operational) + "#" + str_class + key_cache = "get_fecs_from_class#" + str(operational) + "#" + str_class + "#" + acc if key_cache in DATA_CACHE: return DATA_CACHE[key_cache] class_fec = {} for fesa_class_name in classes_to_find: - fec_class = get_devices_from_class_per_fec(fesa_class_name) + fec_class = get_devices_from_class_per_fec(fesa_class_name, acc=acc) for fec in fec_class: if fesa_class_name not in class_fec: class_fec[fesa_class_name] = [] @@ -310,7 +310,7 @@ def get_classes_from_fec(class_to_find=[], operational=True): return fec_classes -def get_devices_from_class(class_to_find): +def get_devices_from_class(class_to_find, acc=None): """ Get all device names for a given class name. @@ -320,8 +320,8 @@ def get_devices_from_class(class_to_find): :rtype: List """ - key_cache = "get_devices_from_class#" + class_to_find - key_cache_object = "get_devices_from_class_object#" + class_to_find + key_cache = "get_devices_from_class#" + class_to_find + "#" + acc + key_cache_object = "get_devices_from_class_object#" + class_to_find + "#" + acc if key_cache in DATA_CACHE: return DATA_CACHE[key_cache] @@ -337,6 +337,8 @@ def get_devices_from_class(class_to_find): for device in devices_ccda: if device is not None: + if (acc is not None) and (device.accelerator_name != acc): + continue if not device.is_global: key_c = "get_device#" + device.name DATA_CACHE[key_c] = device @@ -428,7 +430,7 @@ def get_device(device_name): return device -def get_devices_from_class_per_fec(class_to_find): +def get_devices_from_class_per_fec(class_to_find, acc=None): """ Get all device names for a given class name and organised per fec. @@ -438,12 +440,12 @@ def get_devices_from_class_per_fec(class_to_find): :rtype: dict """ - key_cache = "get_devices_from_class_per_fec#" + class_to_find + key_cache = "get_devices_from_class_per_fec#" + class_to_find + "#" + acc if key_cache in DATA_CACHE: return DATA_CACHE[key_cache] - devices = get_devices_from_class(class_to_find) + devices = get_devices_from_class(class_to_find, acc=acc) devices_per_fec = {} for device in devices: if device is not None: @@ -825,16 +827,16 @@ if __name__ == "__main__": # print(get_instance_fields("PR.BPM")) t2 = round(time.time() * 1000) - print(get_gdevices_from_class("BPMOPS")) + # print(get_gdevices_from_class("BPMOPS")) get_pffc_opts = { 'class_name': "BPMOPS", 'property_name': "_DeviceInfo", 'class_version': None } - print(get_property_fields_from_class(**get_pffc_opts)) + # print(get_property_fields_from_class(**get_pffc_opts)) - # print(get_devices_from_class_per_fec("BCSPILLSPS")) + print("here",get_devices_from_class_per_fec("BCSPILLSPS",acc="LHC")) # print(get_fecs_from_class(class_names)) diff --git a/expert_gui_core/gui/widgets/combiner/metanxcalswidget.py b/expert_gui_core/gui/widgets/combiner/metanxcalswidget.py index f7deb32286fd1f2f7f6e065c2e3354c27066469a..d39038d34054922d0118fd14837fbec12ed69001 100644 --- a/expert_gui_core/gui/widgets/combiner/metanxcalswidget.py +++ b/expert_gui_core/gui/widgets/combiner/metanxcalswidget.py @@ -1590,7 +1590,7 @@ class _NXCALSSearch(QWidget): def add_scalar(self): QApplication.setOverrideCursor(Qt.WaitCursor) - self._add.setDisabled(True) + # self._add.setDisabled(True) try: @@ -1725,7 +1725,7 @@ class _NXCALSSearch(QWidget): QApplication.setOverrideCursor(Qt.WaitCursor) - self._add.setDisabled(True) + # self._add.setDisabled(True) try: