From 333b003562678d8c6554db17428d7d1c97895a5a Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Fri, 27 Feb 2026 17:14:08 +0100 Subject: [PATCH 01/11] Now, in arrays, wildcards and regex can be used. --- pyaml/common/element_holder.py | 95 +++++++--- tests/config/EBSOrbit.yaml | 322 +-------------------------------- tests/config/sr.yaml | 21 +-- 3 files changed, 79 insertions(+), 359 deletions(-) diff --git a/pyaml/common/element_holder.py b/pyaml/common/element_holder.py index 49a5811d..64b05b32 100644 --- a/pyaml/common/element_holder.py +++ b/pyaml/common/element_holder.py @@ -2,6 +2,8 @@ Module handling element references for simulators and control system """ +import fnmatch +import re from typing import TYPE_CHECKING from ..arrays.bpm_array import BPMArray @@ -33,17 +35,36 @@ class ElementHolder(object): simulators and control system """ + __MAGNETS: dict[str, Magnet] + __CFM_MAGNETS: dict[str, CombinedFunctionMagnet] + __SERIALIZED_MAGNETS: dict[str, SerializedMagnets] + __BPMS: dict[str, BPM] + __RFPLANT: dict[str, RFPlant] + __RFTRANSMITTER: dict[str, RFTransmitter] + __DIAG: dict[str, Element] + __TUNING_TOOLS: dict[str, Element] + __ALL: dict[str, Element] + def __init__(self): # Device handle - self.__MAGNETS: dict = {} - self.__CFM_MAGNETS: dict = {} - self.__SERIALIZED_MAGNETS: dict = {} - self.__BPMS: dict = {} - self.__RFPLANT: dict = {} - self.__RFTRANSMITTER: dict = {} - self.__DIAG: dict = {} - self.__TUNING_TOOLS = {} - self.__ALL: dict = {} + self.__MAGNETS: dict[str, Magnet] = {} + self.__CFM_MAGNETS: dict[str, CombinedFunctionMagnet] = {} + self.__SERIALIZED_MAGNETS: dict[str, SerializedMagnets] = {} + self.__BPMS: dict[str, BPM] = {} + self.__RFPLANT: dict[str, RFPlant] = {} + self.__RFTRANSMITTER: dict[str, RFTransmitter] = {} + self.__DIAG: dict[str, Element] = {} + self.__TUNING_TOOLS: dict[str, Element] = {} + self.__ALL: dict[str, Element] = {} + + self.__by_class_elements: dict[type, dict] = { + Magnet: self.__MAGNETS, + CombinedFunctionMagnet: self.__CFM_MAGNETS, + SerializedMagnets: self.__SERIALIZED_MAGNETS, + BPM: self.__BPMS, + RFPlant: self.__RFPLANT, + RFTransmitter: self.__RFTRANSMITTER, + } # Array handle self.__MAGNET_ARRAYS: dict = {} @@ -62,24 +83,44 @@ def post_init(self): def fill_device(self, elements: list[Element]): raise PyAMLException("ElementHolder.fill_device() is not subclassed") + def find_elements(self, filter: str) -> list[str]: + if filter.startswith("re:"): + pattern = re.compile(rf"{filter[3:]}") + elements = [k for k in self.__ALL.keys() if pattern.fullmatch(k)] + elif "*" in filter or "?" in filter: + elements = [k for k in self.__ALL.keys() if fnmatch.fnmatch(k, filter)] + else: + elements = [filter] + + return elements + def fill_array( - self, arrayName: str, elementNames: list[str], get_func, constructor, ARR: dict + self, + array_name: str, + element_names: list[str], + get_func, + constructor, + ARR: dict, ): a = [] - for name in elementNames: - try: - m = get_func(name) - except Exception as err: - raise PyAMLException( - f"{constructor.__name__} {arrayName} : {err} @index {len(a)}" - ) from None - if m in a: - raise PyAMLException( - f"{constructor.__name__} {arrayName} : " - f"duplicate name {name} @index {len(a)}" - ) from None - a.append(m) - ARR[arrayName] = constructor(arrayName, a) + + for name in element_names: + names = self.find_elements(name) + + for n in names: + try: + m = get_func(n) + except Exception as err: + raise PyAMLException( + f"{constructor.__name__} {array_name} : {err} @index {len(a)}" + ) from None + if m in a: + raise PyAMLException( + f"{constructor.__name__} {array_name} : " + f"duplicate name {name} @index {len(a)}" + ) from None + a.append(m) + ARR[array_name] = constructor(array_name, a) def __add(self, array, element: Element): if element.get_name() in self.__ALL: # Ensure name unicity @@ -187,7 +228,11 @@ def get_all_serialized_magnets(self) -> list[SerializedMagnets]: def fill_bpm_array(self, arrayName: str, elementNames: list[str]): self.fill_array( - arrayName, elementNames, self.get_bpm, BPMArray, self.__BPM_ARRAYS + arrayName, + elementNames, + self.get_bpm, + BPMArray, + self.__BPM_ARRAYS, ) def get_bpm(self, name: str) -> Element: diff --git a/tests/config/EBSOrbit.yaml b/tests/config/EBSOrbit.yaml index ccc6ed36..131aed4f 100644 --- a/tests/config/EBSOrbit.yaml +++ b/tests/config/EBSOrbit.yaml @@ -888,326 +888,8 @@ arrays: - type: pyaml.arrays.bpm name: BPM elements: - - BPM_C04-01 - - BPM_C04-02 - - BPM_C04-03 - - BPM_C04-04 - - BPM_C04-05 - - BPM_C04-06 - - BPM_C04-07 - - BPM_C04-08 - - BPM_C04-09 - - BPM_C04-10 - - BPM_C05-01 - - BPM_C05-02 - - BPM_C05-03 - - BPM_C05-04 - - BPM_C05-05 - - BPM_C05-06 - - BPM_C05-07 - - BPM_C05-08 - - BPM_C05-09 - - BPM_C05-10 - - BPM_C06-01 - - BPM_C06-02 - - BPM_C06-03 - - BPM_C06-04 - - BPM_C06-05 - - BPM_C06-06 - - BPM_C06-07 - - BPM_C06-08 - - BPM_C06-09 - - BPM_C06-10 - - BPM_C07-01 - - BPM_C07-02 - - BPM_C07-03 - - BPM_C07-04 - - BPM_C07-05 - - BPM_C07-06 - - BPM_C07-07 - - BPM_C07-08 - - BPM_C07-09 - - BPM_C07-10 - - BPM_C08-01 - - BPM_C08-02 - - BPM_C08-03 - - BPM_C08-04 - - BPM_C08-05 - - BPM_C08-06 - - BPM_C08-07 - - BPM_C08-08 - - BPM_C08-09 - - BPM_C08-10 - - BPM_C09-01 - - BPM_C09-02 - - BPM_C09-03 - - BPM_C09-04 - - BPM_C09-05 - - BPM_C09-06 - - BPM_C09-07 - - BPM_C09-08 - - BPM_C09-09 - - BPM_C09-10 - - BPM_C10-01 - - BPM_C10-02 - - BPM_C10-03 - - BPM_C10-04 - - BPM_C10-05 - - BPM_C10-06 - - BPM_C10-07 - - BPM_C10-08 - - BPM_C10-09 - - BPM_C10-10 - - BPM_C11-01 - - BPM_C11-02 - - BPM_C11-03 - - BPM_C11-04 - - BPM_C11-05 - - BPM_C11-06 - - BPM_C11-07 - - BPM_C11-08 - - BPM_C11-09 - - BPM_C11-10 - - BPM_C12-01 - - BPM_C12-02 - - BPM_C12-03 - - BPM_C12-04 - - BPM_C12-05 - - BPM_C12-06 - - BPM_C12-07 - - BPM_C12-08 - - BPM_C12-09 - - BPM_C12-10 - - BPM_C13-01 - - BPM_C13-02 - - BPM_C13-03 - - BPM_C13-04 - - BPM_C13-05 - - BPM_C13-06 - - BPM_C13-07 - - BPM_C13-08 - - BPM_C13-09 - - BPM_C13-10 - - BPM_C14-01 - - BPM_C14-02 - - BPM_C14-03 - - BPM_C14-04 - - BPM_C14-05 - - BPM_C14-06 - - BPM_C14-07 - - BPM_C14-08 - - BPM_C14-09 - - BPM_C14-10 - - BPM_C15-01 - - BPM_C15-02 - - BPM_C15-03 - - BPM_C15-04 - - BPM_C15-05 - - BPM_C15-06 - - BPM_C15-07 - - BPM_C15-08 - - BPM_C15-09 - - BPM_C15-10 - - BPM_C16-01 - - BPM_C16-02 - - BPM_C16-03 - - BPM_C16-04 - - BPM_C16-05 - - BPM_C16-06 - - BPM_C16-07 - - BPM_C16-08 - - BPM_C16-09 - - BPM_C16-10 - - BPM_C17-01 - - BPM_C17-02 - - BPM_C17-03 - - BPM_C17-04 - - BPM_C17-05 - - BPM_C17-06 - - BPM_C17-07 - - BPM_C17-08 - - BPM_C17-09 - - BPM_C17-10 - - BPM_C18-01 - - BPM_C18-02 - - BPM_C18-03 - - BPM_C18-04 - - BPM_C18-05 - - BPM_C18-06 - - BPM_C18-07 - - BPM_C18-08 - - BPM_C18-09 - - BPM_C18-10 - - BPM_C19-01 - - BPM_C19-02 - - BPM_C19-03 - - BPM_C19-04 - - BPM_C19-05 - - BPM_C19-06 - - BPM_C19-07 - - BPM_C19-08 - - BPM_C19-09 - - BPM_C19-10 - - BPM_C20-01 - - BPM_C20-02 - - BPM_C20-03 - - BPM_C20-04 - - BPM_C20-05 - - BPM_C20-06 - - BPM_C20-07 - - BPM_C20-08 - - BPM_C20-09 - - BPM_C20-10 - - BPM_C21-01 - - BPM_C21-02 - - BPM_C21-03 - - BPM_C21-04 - - BPM_C21-05 - - BPM_C21-06 - - BPM_C21-07 - - BPM_C21-08 - - BPM_C21-09 - - BPM_C21-10 - - BPM_C22-01 - - BPM_C22-02 - - BPM_C22-03 - - BPM_C22-04 - - BPM_C22-05 - - BPM_C22-06 - - BPM_C22-07 - - BPM_C22-08 - - BPM_C22-09 - - BPM_C22-10 - - BPM_C23-01 - - BPM_C23-02 - - BPM_C23-03 - - BPM_C23-04 - - BPM_C23-05 - - BPM_C23-06 - - BPM_C23-07 - - BPM_C23-08 - - BPM_C23-09 - - BPM_C23-10 - - BPM_C24-01 - - BPM_C24-02 - - BPM_C24-03 - - BPM_C24-04 - - BPM_C24-05 - - BPM_C24-06 - - BPM_C24-07 - - BPM_C24-08 - - BPM_C24-09 - - BPM_C24-10 - - BPM_C25-01 - - BPM_C25-02 - - BPM_C25-03 - - BPM_C25-04 - - BPM_C25-05 - - BPM_C25-06 - - BPM_C25-07 - - BPM_C25-08 - - BPM_C25-09 - - BPM_C25-10 - - BPM_C26-01 - - BPM_C26-02 - - BPM_C26-03 - - BPM_C26-04 - - BPM_C26-05 - - BPM_C26-06 - - BPM_C26-07 - - BPM_C26-08 - - BPM_C26-09 - - BPM_C26-10 - - BPM_C27-01 - - BPM_C27-02 - - BPM_C27-03 - - BPM_C27-04 - - BPM_C27-05 - - BPM_C27-06 - - BPM_C27-07 - - BPM_C27-08 - - BPM_C27-09 - - BPM_C27-10 - - BPM_C28-01 - - BPM_C28-02 - - BPM_C28-03 - - BPM_C28-04 - - BPM_C28-05 - - BPM_C28-06 - - BPM_C28-07 - - BPM_C28-08 - - BPM_C28-09 - - BPM_C28-10 - - BPM_C29-01 - - BPM_C29-02 - - BPM_C29-03 - - BPM_C29-04 - - BPM_C29-05 - - BPM_C29-06 - - BPM_C29-07 - - BPM_C29-08 - - BPM_C29-09 - - BPM_C29-10 - - BPM_C30-01 - - BPM_C30-02 - - BPM_C30-03 - - BPM_C30-04 - - BPM_C30-05 - - BPM_C30-06 - - BPM_C30-07 - - BPM_C30-08 - - BPM_C30-09 - - BPM_C30-10 - - BPM_C31-01 - - BPM_C31-02 - - BPM_C31-03 - - BPM_C31-04 - - BPM_C31-05 - - BPM_C31-06 - - BPM_C31-07 - - BPM_C31-08 - - BPM_C31-09 - - BPM_C31-10 - - BPM_C32-01 - - BPM_C32-02 - - BPM_C32-03 - - BPM_C32-04 - - BPM_C32-05 - - BPM_C32-06 - - BPM_C32-07 - - BPM_C32-08 - - BPM_C32-09 - - BPM_C32-10 - - BPM_C01-01 - - BPM_C01-02 - - BPM_C01-03 - - BPM_C01-04 - - BPM_C01-05 - - BPM_C01-06 - - BPM_C01-07 - - BPM_C01-08 - - BPM_C01-09 - - BPM_C01-10 - - BPM_C02-01 - - BPM_C02-02 - - BPM_C02-03 - - BPM_C02-04 - - BPM_C02-05 - - BPM_C02-06 - - BPM_C02-07 - - BPM_C02-08 - - BPM_C02-09 - - BPM_C02-10 - - BPM_C03-01 - - BPM_C03-02 - - BPM_C03-03 - - BPM_C03-04 - - BPM_C03-05 - - BPM_C03-06 - - BPM_C03-07 - - BPM_C03-08 - - BPM_C03-09 - - BPM_C03-10 + - re:^BPM_C(0[4-9]|1[0-9]|2[0-9]|3[0-2]).*$ + - re:^BPM_C(0[1-3]).*$ devices: - type: pyaml.diagnostics.tune_monitor name: BETATRON_TUNE diff --git a/tests/config/sr.yaml b/tests/config/sr.yaml index 92d4a84c..b223852e 100644 --- a/tests/config/sr.yaml +++ b/tests/config/sr.yaml @@ -15,35 +15,28 @@ arrays: - type: pyaml.arrays.magnet name: HCORR elements: - - SH1A-C01-H - - SH1A-C02-H + - SH1A-C0?-H - type: pyaml.arrays.magnet name: VCORR elements: - - SH1A-C01-V - - SH1A-C02-V + - SH1A-C0?-V - type: pyaml.arrays.magnet name: HVCORR elements: - - SH1A-C01-H - - SH1A-C02-H - - SH1A-C01-V - - SH1A-C02-V + - re:^SH1A-C0[12]-H$ + - re:^SH1A-C0[12]-V$ - type: pyaml.arrays.cfm_magnet name: CFM elements: - - SH1A-C01 - - SH1A-C02 + - SH1A-C0? - type: pyaml.arrays.bpm name: BPMS elements: - - BPM_C04-01 - - BPM_C04-02 + - BPM_C04-* - type: pyaml.arrays.element name: ElArray elements: - - BPM_C04-01 - - BPM_C04-02 + - re:^BPM_C04-0[12]$ - SH1A-C01-V - SH1A-C02-H devices: From 0fd2a8755b3368972dc542cdbcdfacbd7327f6f7 Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Tue, 3 Mar 2026 15:00:19 +0100 Subject: [PATCH 02/11] Python-based configuration macros using the key `elements_code` --- pyaml/configuration/fileloader.py | 92 +- tests/config/EBSOrbit.yaml | 3864 +---------------------------- tests/test_load_conf_with_code.py | 13 + 3 files changed, 115 insertions(+), 3854 deletions(-) create mode 100644 tests/test_load_conf_with_code.py diff --git a/pyaml/configuration/fileloader.py b/pyaml/configuration/fileloader.py index 6df60c1d..7b8ee01b 100644 --- a/pyaml/configuration/fileloader.py +++ b/pyaml/configuration/fileloader.py @@ -4,6 +4,7 @@ import json import logging import os +import textwrap from pathlib import Path from typing import TYPE_CHECKING, Union @@ -12,8 +13,6 @@ from yaml.constructor import ConstructorError from yaml.loader import SafeLoader -from pyaml.configuration.factory import Factory - from .. import PyAMLException if TYPE_CHECKING: @@ -24,6 +23,7 @@ accepted_suffixes = [".yaml", ".yml", ".json"] FILE_PREFIX = "file:" +elements_code_tag = "elements_code" ROOT = {"path": Path.cwd().resolve()} @@ -88,6 +88,44 @@ def hasToLoad(value): ) +# Expand condition for dynamic code execution +def has_to_execute(key: str, value): + """ + Return True if the current dict entry corresponds to executable code. + + The execution is triggered only when: + - the key is exactly "elements_code" + - the value is a string (code snippet) + + This keeps behavior explicit and avoids accidental execution. + """ + return key == elements_code_tag and isinstance(value, str) + + +def execute_configuration_code(code: str): + clean_code = textwrap.dedent(code).strip() + wrapped = "def _f():\n" + textwrap.indent(clean_code.strip(), " ") + compiled = compile(wrapped, "", "exec") + + ns = {} + exec(compiled, ns) + + return ns["_f"]() + + +def extract_location(d: dict, key: str) -> str: + location = d.pop("__location__", None) + field_locations = d.pop("__fieldlocations__", None) + location_str = "" + if location: + file, line, col = location + if field_locations and key in field_locations: + location = field_locations[key] + file, line, col = location + location_str = f" in {file} at line {line}, column {col}" + return location_str + + # Loader base class (nested files expansion) class Loader: def __init__(self, filename: str, parent_path_stack: list[Path]): @@ -112,18 +150,23 @@ def expand_dict(self, d: dict): d[key] = str(get_root_folder() / Path(stripped_value)) else: d[key] = load(value, self.files_stack, self.use_fast_loader) + elif has_to_execute(key, value): + exec_result = execute_configuration_code(value) + d.pop(key, None) + if isinstance(exec_result, dict): + self.expand(exec_result) + d.update(exec_result) + else: + location_str = extract_location(d, key) + raise PyAMLException( + f"The type returned by an elements_code" + f" block was of type {type(exec_result)}" + f" while a dict was expected{location_str}" + ) else: self.expand(value) except PyAMLConfigCyclingException as pyaml_ex: - location = d.pop("__location__", None) - field_locations = d.pop("__fieldlocations__", None) - location_str = "" - if location: - file, line, col = location - if field_locations and key in field_locations: - location = field_locations[key] - file, line, col = location - location_str = f" in {file} at line {line}, column {col}" + location_str = extract_location(d, key) raise PyAMLException( "Circular file inclusion " f"of {pyaml_ex.error_filename}{location_str}" @@ -131,12 +174,37 @@ def expand_dict(self, d: dict): # Recursively expand a list def expand_list(self, l: list): - for idx, value in enumerate(l): + idx = 0 + while idx < len(l): + value = l[idx] + + # Special case: list item is a pure code-macro dict {"elements_code": "..."} + if isinstance(value, dict) and elements_code_tag in value.keys(): + result = execute_configuration_code(value[elements_code_tag]) + + if isinstance(result, list): + # Replace the macro item with all generated items + l[idx : idx + 1] = result + # Expand each inserted item + for j in range(idx, idx + len(result)): + self.expand(l[j]) + idx += len(result) + else: + # It should be a dict, but we accept everything as a custom + # strategy can be used. + l[idx] = result + self.expand(l[idx]) + idx += 1 + continue + + # Default behavior if hasToLoad(value): l[idx] = load(value, self.files_stack) else: self.expand(value) + idx += 1 + # Recursively expand an object def expand(self, obj: Union[dict, list]): if isinstance(obj, dict): diff --git a/tests/config/EBSOrbit.yaml b/tests/config/EBSOrbit.yaml index 131aed4f..255e09d7 100644 --- a/tests/config/EBSOrbit.yaml +++ b/tests/config/EBSOrbit.yaml @@ -888,8 +888,7 @@ arrays: - type: pyaml.arrays.bpm name: BPM elements: - - re:^BPM_C(0[4-9]|1[0-9]|2[0-9]|3[0-2]).*$ - - re:^BPM_C(0[1-3]).*$ + - BPM* devices: - type: pyaml.diagnostics.tune_monitor name: BETATRON_TUNE @@ -8537,3843 +8536,24 @@ devices: - type: tango.pyaml.attribute attribute: srmag/ps-corr-sh3/c03-e-ch6/current unit: A -- type: pyaml.bpm.bpm - name: BPM_C04-01 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-01/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C04-02 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-02/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C04-03 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-03/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C04-04 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-04/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C04-05 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-05/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C04-06 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-06/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C04-07 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-07/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C04-08 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-08/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C04-09 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-09/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C04-10 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-10/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C05-01 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-01/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C05-02 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-02/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C05-03 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-03/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C05-04 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-04/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C05-05 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-05/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C05-06 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-06/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C05-07 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-07/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C05-08 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-08/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C05-09 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-09/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C05-10 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-10/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C06-01 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-01/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C06-02 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-02/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C06-03 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-03/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C06-04 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-04/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C06-05 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-05/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C06-06 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-06/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C06-07 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-07/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C06-08 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-08/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C06-09 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-09/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C06-10 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-10/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C07-01 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-01/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C07-02 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-02/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C07-03 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-03/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C07-04 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-04/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C07-05 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-05/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C07-06 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-06/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C07-07 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-07/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C07-08 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-08/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C07-09 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-09/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C07-10 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-10/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C08-01 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-01/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C08-02 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-02/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C08-03 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-03/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C08-04 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-04/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C08-05 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-05/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C08-06 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-06/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C08-07 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-07/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C08-08 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-08/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C08-09 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-09/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C08-10 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-10/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C09-01 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-01/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C09-02 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-02/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C09-03 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-03/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C09-04 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-04/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C09-05 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-05/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C09-06 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-06/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C09-07 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-07/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C09-08 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-08/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C09-09 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-09/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C09-10 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-10/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C10-01 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-01/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C10-02 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-02/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C10-03 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-03/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C10-04 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-04/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C10-05 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-05/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C10-06 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-06/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C10-07 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-07/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C10-08 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-08/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C10-09 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-09/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C10-10 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-10/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C11-01 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-01/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C11-02 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-02/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C11-03 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-03/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C11-04 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-04/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C11-05 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-05/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C11-06 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-06/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C11-07 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-07/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C11-08 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-08/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C11-09 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-09/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C11-10 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-10/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C12-01 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-01/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C12-02 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-02/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C12-03 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-03/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C12-04 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-04/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C12-05 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-05/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C12-06 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-06/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C12-07 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-07/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C12-08 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-08/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C12-09 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-09/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C12-10 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-10/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C13-01 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-01/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C13-02 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-02/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C13-03 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-03/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C13-04 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-04/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C13-05 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-05/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C13-06 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-06/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C13-07 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-07/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C13-08 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-08/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C13-09 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-09/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C13-10 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-10/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C14-01 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-01/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C14-02 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-02/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C14-03 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-03/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C14-04 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-04/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C14-05 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-05/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C14-06 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-06/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C14-07 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-07/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C14-08 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-08/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C14-09 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-09/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C14-10 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-10/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C15-01 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-01/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C15-02 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-02/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C15-03 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-03/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C15-04 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-04/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C15-05 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-05/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C15-06 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-06/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C15-07 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-07/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C15-08 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-08/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C15-09 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-09/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C15-10 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-10/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C16-01 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-01/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C16-02 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-02/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C16-03 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-03/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C16-04 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-04/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C16-05 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-05/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C16-06 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-06/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C16-07 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-07/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C16-08 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-08/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C16-09 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-09/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C16-10 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-10/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C17-01 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-01/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C17-02 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-02/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C17-03 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-03/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C17-04 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-04/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C17-05 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-05/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C17-06 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-06/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C17-07 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-07/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C17-08 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-08/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C17-09 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-09/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C17-10 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-10/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C18-01 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-01/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C18-02 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-02/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C18-03 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-03/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C18-04 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-04/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C18-05 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-05/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C18-06 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-06/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C18-07 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-07/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C18-08 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-08/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C18-09 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-09/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C18-10 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-10/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C19-01 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-01/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C19-02 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-02/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C19-03 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-03/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C19-04 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-04/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C19-05 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-05/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C19-06 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-06/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C19-07 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-07/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C19-08 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-08/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C19-09 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-09/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C19-10 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-10/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C20-01 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-01/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C20-02 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-02/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C20-03 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-03/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C20-04 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-04/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C20-05 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-05/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C20-06 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-06/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C20-07 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-07/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C20-08 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-08/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C20-09 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-09/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C20-10 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-10/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C21-01 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-01/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C21-02 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-02/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C21-03 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-03/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C21-04 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-04/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C21-05 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-05/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C21-06 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-06/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C21-07 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-07/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C21-08 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-08/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C21-09 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-09/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C21-10 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-10/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C22-01 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-01/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C22-02 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-02/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C22-03 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-03/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C22-04 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-04/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C22-05 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-05/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C22-06 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-06/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C22-07 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-07/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C22-08 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-08/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C22-09 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-09/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C22-10 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-10/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C23-01 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-01/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C23-02 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-02/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C23-03 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-03/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C23-04 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-04/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C23-05 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-05/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C23-06 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-06/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C23-07 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-07/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C23-08 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-08/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C23-09 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-09/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C23-10 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-10/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C24-01 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-01/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C24-02 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-02/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C24-03 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-03/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C24-04 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-04/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C24-05 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-05/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C24-06 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-06/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C24-07 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-07/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C24-08 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-08/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C24-09 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-09/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C24-10 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-10/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C25-01 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-01/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C25-02 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-02/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C25-03 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-03/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C25-04 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-04/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C25-05 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-05/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C25-06 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-06/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C25-07 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-07/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C25-08 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-08/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C25-09 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-09/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C25-10 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-10/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C26-01 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-01/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C26-02 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-02/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C26-03 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-03/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C26-04 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-04/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C26-05 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-05/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C26-06 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-06/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C26-07 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-07/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C26-08 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-08/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C26-09 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-09/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C26-10 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-10/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C27-01 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-01/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C27-02 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-02/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C27-03 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-03/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C27-04 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-04/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C27-05 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-05/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C27-06 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-06/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C27-07 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-07/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C27-08 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-08/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C27-09 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-09/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C27-10 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-10/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C28-01 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-01/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C28-02 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-02/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C28-03 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-03/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C28-04 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-04/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C28-05 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-05/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C28-06 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-06/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C28-07 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-07/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C28-08 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-08/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C28-09 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-09/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C28-10 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-10/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C29-01 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-01/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C29-02 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-02/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C29-03 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-03/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C29-04 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-04/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C29-05 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-05/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C29-06 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-06/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C29-07 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-07/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C29-08 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-08/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C29-09 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-09/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C29-10 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-10/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C30-01 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-01/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C30-02 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-02/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C30-03 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-03/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C30-04 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-04/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C30-05 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-05/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C30-06 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-06/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C30-07 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-07/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C30-08 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-08/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C30-09 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-09/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C30-10 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-10/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C31-01 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-01/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C31-02 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-02/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C31-03 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-03/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C31-04 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-04/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C31-05 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-05/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C31-06 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-06/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C31-07 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-07/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C31-08 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-08/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C31-09 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-09/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C31-10 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-10/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C32-01 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-01/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C32-02 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-02/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C32-03 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-03/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C32-04 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-04/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C32-05 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-05/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C32-06 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-06/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C32-07 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-07/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C32-08 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-08/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C32-09 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-09/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C32-10 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-10/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C01-01 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-01/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C01-02 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-02/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C01-03 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-03/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C01-04 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-04/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C01-05 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-05/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C01-06 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-06/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C01-07 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-07/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C01-08 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-08/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C01-09 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-09/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C01-10 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-10/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C02-01 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-01/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C02-02 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-02/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C02-03 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-03/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C02-04 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-04/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C02-05 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-05/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C02-06 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-06/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C02-07 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-07/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C02-08 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-08/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C02-09 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-09/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C02-10 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-10/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C03-01 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-01/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C03-02 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-02/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C03-03 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-03/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C03-04 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-04/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C03-05 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-05/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C03-06 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-06/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C03-07 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-07/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C03-08 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-08/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C03-09 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-09/SA_VPosition - unit: m -- type: pyaml.bpm.bpm - name: BPM_C03-10 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-10/SA_VPosition - unit: m +- elements_code: | + out:list[dict] = [] + ranges = [(4,33), (1,4)] + for r in ranges: + for cell in range(r[0], r[1]): + for elem in range(1, 11): + bpm = {"type": "pyaml.bpm.bpm", + "name": f"BPM_C{cell:02d}-{elem:02d}", + "model": {"type": "pyaml.bpm.bpm_simple_model", + "x_pos": { "type": "tango.pyaml.attribute_read_only", + "attribute": f"srdiag/bpm/c{cell:02d}-{elem:02d}/SA_HPosition", + "unit": "m", + }, + "y_pos": {"type": "tango.pyaml.attribute_read_only", + "attribute": f"srdiag/bpm/c{cell:02d}-{elem:02d}/SA_VPosition", + "unit": "m", + }, + } + } + out.append(bpm) + return out diff --git a/tests/test_load_conf_with_code.py b/tests/test_load_conf_with_code.py new file mode 100644 index 00000000..ceb4747d --- /dev/null +++ b/tests/test_load_conf_with_code.py @@ -0,0 +1,13 @@ +from pathlib import Path + +from pyaml.accelerator import Accelerator + + +def test_load_conf_with_code(): + parent_folder = Path(__file__).parent + config_path = parent_folder.joinpath("config", "EBSOrbit.yaml").resolve() + + sr: Accelerator = Accelerator.load(config_path) + bpms = sr.live.get_bpms("BPM") + assert bpms is not None + assert len(bpms) == 320 From 13b5d1f0f87da822abc4eb663476915446bbe995 Mon Sep 17 00:00:00 2001 From: gubaidulinvadim Date: Thu, 5 Mar 2026 10:33:32 +0100 Subject: [PATCH 03/11] Added test of duplicate with regex/wildcards in the config --- tests/config/bad_conf_duplicate_4.yaml | 24 ++++++++++++++++++++++++ tests/test_errors.py | 4 ++++ 2 files changed, 28 insertions(+) create mode 100644 tests/config/bad_conf_duplicate_4.yaml diff --git a/tests/config/bad_conf_duplicate_4.yaml b/tests/config/bad_conf_duplicate_4.yaml new file mode 100644 index 00000000..95beb2f2 --- /dev/null +++ b/tests/config/bad_conf_duplicate_4.yaml @@ -0,0 +1,24 @@ +type: pyaml.accelerator +facility: ESRF +machine: sr +energy: 6e9 +simulators: + - type: pyaml.lattice.simulator + lattice: sr/lattices/ebs.mat + name: design +data_folder: /data/store +arrays: + - type: pyaml.arrays.magnet + name: HCORR + elements: + - SH1A-C0?-H + - SH1A-C02-H # duplicate name in array + - type: pyaml.arrays.magnet + name: VCORR + elements: + - SH1A-C01-V + - SH1A-C02-V +devices: + - sr/quadrupoles/QF1AC01.yaml + - sr/correctors/SH1AC01.yaml + - sr/correctors/SH1AC02.yaml diff --git a/tests/test_errors.py b/tests/test_errors.py index a71d28b4..04b17608 100644 --- a/tests/test_errors.py +++ b/tests/test_errors.py @@ -24,6 +24,10 @@ def test_tune(install_test_package): assert "element BPM_C04-06 already defined" in str(exc) assert "line 58, column 3" in str(exc) + with pytest.raises(PyAMLConfigException) as exc: + ml: Accelerator = Accelerator.load("tests/config/bad_conf_duplicate_4.yaml") + assert "MagnetArray HCORR : duplicate name SH1A-C02-H @index 2" in str(exc) + sr: Accelerator = Accelerator.load("tests/config/EBSTune.yaml") m1 = sr.live.get_magnet("QF1E-C04") m2 = sr.design.get_magnet("QF1A-C05") From 0f514d74666aebee79b3ae0cf3f6f710a20e5b93 Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Thu, 5 Mar 2026 17:03:40 +0100 Subject: [PATCH 04/11] Arrays are sorted accordingly with the device order. Now, it is possible to add an exclude pattern but a test must be added for that part. Also, the test `test_tune_hardware.py` is not working anymore but it is probably due to some numeric accuracy problems. Those 2 points will be solved later. --- pyaml/common/element_holder.py | 45 +++++++++++++++++++++------------- tests/config/EBSOrbit.yaml | 3 ++- tests/test_arrays.py | 6 ++--- tests/test_tune_hardware.py | 5 ++-- 4 files changed, 36 insertions(+), 23 deletions(-) diff --git a/pyaml/common/element_holder.py b/pyaml/common/element_holder.py index 64b05b32..0d1e34fa 100644 --- a/pyaml/common/element_holder.py +++ b/pyaml/common/element_holder.py @@ -102,24 +102,35 @@ def fill_array( constructor, ARR: dict, ): - a = [] - + all_names: list[str] = [] + excluded_names: list[str] = [] for name in element_names: - names = self.find_elements(name) - - for n in names: - try: - m = get_func(n) - except Exception as err: - raise PyAMLException( - f"{constructor.__name__} {array_name} : {err} @index {len(a)}" - ) from None - if m in a: - raise PyAMLException( - f"{constructor.__name__} {array_name} : " - f"duplicate name {name} @index {len(a)}" - ) from None - a.append(m) + if name.startswith("!"): + names = self.find_elements(name[1:]) + excluded_names.extend(names) + else: + names = self.find_elements(name) + all_names.extend(names) + + [all_names.remove(name) for name in excluded_names] + + order = {elem_name: i for i, elem_name in enumerate(self.__ALL.keys())} + all_names = sorted(all_names, key=lambda num: order[num]) + + a = [] + for n in all_names: + try: + m = get_func(n) + except Exception as err: + raise PyAMLException( + f"{constructor.__name__} {array_name} : {err} @index {len(a)}" + ) from None + if m in a: + raise PyAMLException( + f"{constructor.__name__} {array_name} : " + f"duplicate name {name} @index {len(a)}" + ) from None + a.append(m) ARR[array_name] = constructor(array_name, a) def __add(self, array, element: Element): diff --git a/tests/config/EBSOrbit.yaml b/tests/config/EBSOrbit.yaml index 255e09d7..6006bb8b 100644 --- a/tests/config/EBSOrbit.yaml +++ b/tests/config/EBSOrbit.yaml @@ -888,7 +888,8 @@ arrays: - type: pyaml.arrays.bpm name: BPM elements: - - BPM* + - re:^BPM_C(0[4-9]|1[0-9]|2[0-9]|3[0-2]).*$ + - re:^BPM_C(0[1-3]).*$ devices: - type: pyaml.diagnostics.tune_monitor name: BETATRON_TUNE diff --git a/tests/test_arrays.py b/tests/test_arrays.py index 37b70365..4b921b40 100644 --- a/tests/test_arrays.py +++ b/tests/test_arrays.py @@ -99,8 +99,8 @@ def test_arrays(install_test_package): strHV = sr.live.get_magnets("HVCORR").strengths.get() assert np.abs(strHV[0] - 0.000010) < 1e-10 - assert np.abs(strHV[1] + 0.000008) < 1e-10 - assert np.abs(strHV[2] - 0.000015) < 1e-10 + assert np.abs(strHV[1] - 0.000015) < 1e-10 + assert np.abs(strHV[2] + 0.000008) < 1e-10 assert np.abs(strHV[3] + 0.000017) < 1e-10 # Reset to 0 @@ -122,7 +122,7 @@ def test_arrays(install_test_package): for m in sr.live.get_magnets("HVCORR"): mags.append(m) array = MagnetArray("HVCOOR_noagg", mags, use_aggregator=False) - array.strengths.set([0.000010, -0.000008, 0.000015, -0.000017]) + array.strengths.set([0.000010, 0.000015, -0.000008, -0.000017]) ps1 = sr.live.get_cfm_magnet("SH1A-C01").hardwares.get() ps2 = sr.live.get_cfm_magnet("SH1A-C02").hardwares.get() assert np.abs(ps1[0] - 0.02956737880874648) < 1e-10 diff --git a/tests/test_tune_hardware.py b/tests/test_tune_hardware.py index d5b9529e..8b384dc7 100644 --- a/tests/test_tune_hardware.py +++ b/tests/test_tune_hardware.py @@ -38,8 +38,9 @@ def test_tune(): newTune = tune_monitor.tune.get() units = quadForTuneDesign.hardwares.unit() diffTune = newTune - tune + assert np.abs(diffTune[0] - 0.1) < 1e-3 assert np.abs(diffTune[1] - 0.05) < 1.1e-3 - assert np.abs(currents[0] - 88.04522942) < 1e-8 - assert np.abs(currents[1] - 88.26677735) < 1e-8 + assert np.abs(currents[62] - 88.04522942) < 1e-8 + assert np.abs(currents[63] - 88.26677735) < 1e-8 assert units[0] == "A" and units[1] == "A" From 2aa6203e8926485401e0cc7f15b9f2ebd980b923 Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Fri, 6 Mar 2026 10:55:10 +0100 Subject: [PATCH 05/11] The pattern for exclusion is now `~`. A test is added for patterns. --- pyaml/common/element_holder.py | 2 +- tests/config/EBSTune-patterns.yaml | 1781 ++++++++++++++++++++++++++++ tests/config/EBSTune-range.yaml | 126 +- tests/config/EBSTune.yaml | 126 +- tests/test_patterns.py | 25 + 5 files changed, 1811 insertions(+), 249 deletions(-) create mode 100644 tests/config/EBSTune-patterns.yaml create mode 100644 tests/test_patterns.py diff --git a/pyaml/common/element_holder.py b/pyaml/common/element_holder.py index 0d1e34fa..f5b1d3be 100644 --- a/pyaml/common/element_holder.py +++ b/pyaml/common/element_holder.py @@ -105,7 +105,7 @@ def fill_array( all_names: list[str] = [] excluded_names: list[str] = [] for name in element_names: - if name.startswith("!"): + if name.startswith("~"): names = self.find_elements(name[1:]) excluded_names.extend(names) else: diff --git a/tests/config/EBSTune-patterns.yaml b/tests/config/EBSTune-patterns.yaml new file mode 100644 index 00000000..bb877d65 --- /dev/null +++ b/tests/config/EBSTune-patterns.yaml @@ -0,0 +1,1781 @@ +type: pyaml.accelerator +facility: ESRF +machine: sr +energy: 6e9 +description: "Accelerator configuration for EBS storage ring" +simulators: + - type: pyaml.lattice.simulator + description: "EBS lattice" + lattice: sr/lattices/ebs.mat + name: design +controls: + - type: tango.pyaml.controlsystem + tango_host: ebs-simu-3:10000 + name: live +data_folder: /data/store +arrays: + - type: pyaml.arrays.magnet + name: QForTune + elements: + - QD2* + - QF1* + - type: pyaml.arrays.magnet + name: QForTest + elements: + - QD2* + - QF1* + - ~QF1E-C05 + - ~Q???-C06 +devices: +- type: pyaml.magnet.quadrupole + description: "QF1E-C04 quadrupole" + name: QF1E-C04 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.00054 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c04-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1A-C05 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.996841 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c05-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1E-C05 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.00191 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c05-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1A-C06 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.0003 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c06-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1E-C06 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.997615 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c06-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1A-C07 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.998152 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c07-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1E-C07 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.00262 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c07-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1A-C08 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.00319 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c08-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1E-C08 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.996180929 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c08-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1A-C09 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.00206 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c09-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1E-C09 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.999285 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c09-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1A-C10 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.00232 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c10-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1E-C10 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.998212 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c10-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1A-C11 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.999225 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c11-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1E-C11 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.998033 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c11-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1A-C12 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.998748 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c12-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1E-C12 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.0023 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c12-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1A-C13 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.00337 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c13-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1E-C13 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.00403 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c13-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1A-C14 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.00182 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c14-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1E-C14 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.998303 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c14-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1A-C15 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.998748 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c15-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1E-C15 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.994098 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c15-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1A-C16 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.00232 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c16-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1E-C16 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.99884 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c16-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1A-C17 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.0079 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c17-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1E-C17 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.999523 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c17-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1A-C18 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c18-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1E-C18 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.999854 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c18-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1A-C19 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.99845 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c19-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1E-C19 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c19-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1A-C20 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.00095 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c20-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1E-C20 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.996753 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c20-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1A-C21 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.00334 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c21-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1E-C21 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.997707 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c21-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1A-C22 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.00152 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c22-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1E-C22 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.998124 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c22-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1A-C23 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.996662 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c23-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1E-C23 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.0017 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c23-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1A-C24 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.999642 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c24-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1E-C24 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.00042 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c24-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1A-C25 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.00471 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c25-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1E-C25 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.00393 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c25-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1A-C26 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.992906 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c26-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1E-C26 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.00268 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c26-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1A-C27 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.00248 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c27-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1E-C27 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.00203 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c27-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1A-C28 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.998030791 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c28-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1E-C28 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.00232 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c28-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1A-C29 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.995052 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c29-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1E-C29 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.00155 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c29-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1A-C30 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.998271 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c30-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1E-C30 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.999702 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c30-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1A-C31 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.998005 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c31-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1E-C31 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.999463 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c31-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1A-C32 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.997794 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c32-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1E-C32 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.00203 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c32-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1A-C01 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.00504 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c01-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1E-C01 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.998212 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c01-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1A-C02 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.0037 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c02-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1E-C02 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.00093 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c02-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QF1A-C03 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.0025 + crosstalk: 1.0 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QF1_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qf1/c03-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2E-C04 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.999305341 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c04-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2A-C05 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.997452918 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c05-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2E-C05 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.997993208 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c05-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2A-C06 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.006031322 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c06-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2E-C06 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.998547233 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c06-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2A-C07 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.002327856 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c07-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2E-C07 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.000154369 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c07-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2A-C08 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.009580478 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c08-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2E-C08 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.00447669 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c08-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2A-C09 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.0015563 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c09-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2E-C09 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.997221365 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c09-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2A-C10 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.005954167 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c10-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2E-C10 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.006725723 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c10-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2A-C11 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.994535144 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c11-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2E-C11 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.999550256 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c11-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2A-C12 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.001479145 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c12-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2E-C12 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.000321811 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c12-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2A-C13 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.006715036 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c13-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2E-C13 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.0036395 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c13-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2A-C14 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.997684471 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c14-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2E-C14 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.000385922 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c14-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2A-C15 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.999010167 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c15-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2E-C15 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.998392922 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c15-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2A-C16 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.999318789 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c16-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2E-C16 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.996926967 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c16-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2A-C17 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.000849027 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c17-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2E-C17 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.003392444 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c17-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2A-C18 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.001312133 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c18-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2E-C18 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.005402902 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c18-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2A-C19 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.995846789 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c19-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2E-C19 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.005877011 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c19-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2A-C20 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.001016211 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c20-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2E-C20 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.999010167 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c20-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2A-C21 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.007265811 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c21-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2E-C21 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.998238611 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c21-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2A-C22 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.998161456 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c22-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2E-C22 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.004642522 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c22-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2A-C23 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.001479145 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c23-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2E-C23 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.001942078 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c23-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2A-C24 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.999087322 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c24-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2E-C24 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.998547233 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c24-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2A-C25 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.001698055 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c25-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2E-C25 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.999704567 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c25-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2A-C26 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.999164478 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c26-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2E-C26 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.000694659 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c26-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2A-C27 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.99945971 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c27-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2E-C27 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.999922816 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c27-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2A-C28 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.999922816 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c28-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2E-C28 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.997838839 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c28-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2A-C29 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.003318926 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c29-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2E-C29 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.004179589 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c29-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2A-C30 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.999010167 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c30-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2E-C30 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.9987787 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c30-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2A-C31 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.004411056 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c31-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2E-C31 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.0029451 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c31-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2A-C32 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.009426167 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c32-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2E-C32 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.0050283 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c32-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2A-C01 + model: + type: pyaml.magnet.linear_model + calibration_factor: 0.998533498 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c01-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2E-C01 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.003485189 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c01-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2A-C02 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.001389318 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c02-a/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2E-C02 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.006108478 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c02-e/current + unit: A +- type: pyaml.magnet.quadrupole + name: QD2A-C03 + model: + type: pyaml.magnet.linear_model + calibration_factor: 1.002096389 + crosstalk: 0.99912 + curve: + type: pyaml.configuration.csvcurve + file: sr/magnet_models/QD2_strength.csv + unit: 1/m + powerconverter: + type: tango.pyaml.attribute + attribute: srmag/vps-qd2/c03-a/current + unit: A +- type: pyaml.diagnostics.tune_monitor + name: BETATRON_TUNE + tune_h: + type: tango.pyaml.attribute_read_only + attribute: srdiag/beam-tune/main/Qh + unit: mm + tune_v: + type: tango.pyaml.attribute_read_only + attribute: srdiag/beam-tune/main/Qv + unit: mm +- type: pyaml.tuning_tools.tune + name: DEFAULT_TUNE_CORRECTION + quad_array: QForTune + betatron_tune: BETATRON_TUNE + delta: 1e-4 diff --git a/tests/config/EBSTune-range.yaml b/tests/config/EBSTune-range.yaml index 3422a53c..b598044c 100644 --- a/tests/config/EBSTune-range.yaml +++ b/tests/config/EBSTune-range.yaml @@ -15,130 +15,8 @@ arrays: - type: pyaml.arrays.magnet name: QForTune elements: - - QD2E-C04 - - QD2A-C05 - - QD2E-C05 - - QD2A-C06 - - QD2E-C06 - - QD2A-C07 - - QD2E-C07 - - QD2A-C08 - - QD2E-C08 - - QD2A-C09 - - QD2E-C09 - - QD2A-C10 - - QD2E-C10 - - QD2A-C11 - - QD2E-C11 - - QD2A-C12 - - QD2E-C12 - - QD2A-C13 - - QD2E-C13 - - QD2A-C14 - - QD2E-C14 - - QD2A-C15 - - QD2E-C15 - - QD2A-C16 - - QD2E-C16 - - QD2A-C17 - - QD2E-C17 - - QD2A-C18 - - QD2E-C18 - - QD2A-C19 - - QD2E-C19 - - QD2A-C20 - - QD2E-C20 - - QD2A-C21 - - QD2E-C21 - - QD2A-C22 - - QD2E-C22 - - QD2A-C23 - - QD2E-C23 - - QD2A-C24 - - QD2E-C24 - - QD2A-C25 - - QD2E-C25 - - QD2A-C26 - - QD2E-C26 - - QD2A-C27 - - QD2E-C27 - - QD2A-C28 - - QD2E-C28 - - QD2A-C29 - - QD2E-C29 - - QD2A-C30 - - QD2E-C30 - - QD2A-C31 - - QD2E-C31 - - QD2A-C32 - - QD2E-C32 - - QD2A-C01 - - QD2E-C01 - - QD2A-C02 - - QD2E-C02 - - QD2A-C03 - - QF1E-C04 - - QF1A-C05 - - QF1E-C05 - - QF1A-C06 - - QF1E-C06 - - QF1A-C07 - - QF1E-C07 - - QF1A-C08 - - QF1E-C08 - - QF1A-C09 - - QF1E-C09 - - QF1A-C10 - - QF1E-C10 - - QF1A-C11 - - QF1E-C11 - - QF1A-C12 - - QF1E-C12 - - QF1A-C13 - - QF1E-C13 - - QF1A-C14 - - QF1E-C14 - - QF1A-C15 - - QF1E-C15 - - QF1A-C16 - - QF1E-C16 - - QF1A-C17 - - QF1E-C17 - - QF1A-C18 - - QF1E-C18 - - QF1A-C19 - - QF1E-C19 - - QF1A-C20 - - QF1E-C20 - - QF1A-C21 - - QF1E-C21 - - QF1A-C22 - - QF1E-C22 - - QF1A-C23 - - QF1E-C23 - - QF1A-C24 - - QF1E-C24 - - QF1A-C25 - - QF1E-C25 - - QF1A-C26 - - QF1E-C26 - - QF1A-C27 - - QF1E-C27 - - QF1A-C28 - - QF1E-C28 - - QF1A-C29 - - QF1E-C29 - - QF1A-C30 - - QF1E-C30 - - QF1A-C31 - - QF1E-C31 - - QF1A-C32 - - QF1E-C32 - - QF1A-C01 - - QF1E-C01 - - QF1A-C02 - - QF1E-C02 - - QF1A-C03 + - QD2* + - QF1* devices: - type: pyaml.magnet.quadrupole name: QF1E-C04 diff --git a/tests/config/EBSTune.yaml b/tests/config/EBSTune.yaml index 04f25524..c1f71a3a 100644 --- a/tests/config/EBSTune.yaml +++ b/tests/config/EBSTune.yaml @@ -17,130 +17,8 @@ arrays: - type: pyaml.arrays.magnet name: QForTune elements: - - QD2E-C04 - - QD2A-C05 - - QD2E-C05 - - QD2A-C06 - - QD2E-C06 - - QD2A-C07 - - QD2E-C07 - - QD2A-C08 - - QD2E-C08 - - QD2A-C09 - - QD2E-C09 - - QD2A-C10 - - QD2E-C10 - - QD2A-C11 - - QD2E-C11 - - QD2A-C12 - - QD2E-C12 - - QD2A-C13 - - QD2E-C13 - - QD2A-C14 - - QD2E-C14 - - QD2A-C15 - - QD2E-C15 - - QD2A-C16 - - QD2E-C16 - - QD2A-C17 - - QD2E-C17 - - QD2A-C18 - - QD2E-C18 - - QD2A-C19 - - QD2E-C19 - - QD2A-C20 - - QD2E-C20 - - QD2A-C21 - - QD2E-C21 - - QD2A-C22 - - QD2E-C22 - - QD2A-C23 - - QD2E-C23 - - QD2A-C24 - - QD2E-C24 - - QD2A-C25 - - QD2E-C25 - - QD2A-C26 - - QD2E-C26 - - QD2A-C27 - - QD2E-C27 - - QD2A-C28 - - QD2E-C28 - - QD2A-C29 - - QD2E-C29 - - QD2A-C30 - - QD2E-C30 - - QD2A-C31 - - QD2E-C31 - - QD2A-C32 - - QD2E-C32 - - QD2A-C01 - - QD2E-C01 - - QD2A-C02 - - QD2E-C02 - - QD2A-C03 - - QF1E-C04 - - QF1A-C05 - - QF1E-C05 - - QF1A-C06 - - QF1E-C06 - - QF1A-C07 - - QF1E-C07 - - QF1A-C08 - - QF1E-C08 - - QF1A-C09 - - QF1E-C09 - - QF1A-C10 - - QF1E-C10 - - QF1A-C11 - - QF1E-C11 - - QF1A-C12 - - QF1E-C12 - - QF1A-C13 - - QF1E-C13 - - QF1A-C14 - - QF1E-C14 - - QF1A-C15 - - QF1E-C15 - - QF1A-C16 - - QF1E-C16 - - QF1A-C17 - - QF1E-C17 - - QF1A-C18 - - QF1E-C18 - - QF1A-C19 - - QF1E-C19 - - QF1A-C20 - - QF1E-C20 - - QF1A-C21 - - QF1E-C21 - - QF1A-C22 - - QF1E-C22 - - QF1A-C23 - - QF1E-C23 - - QF1A-C24 - - QF1E-C24 - - QF1A-C25 - - QF1E-C25 - - QF1A-C26 - - QF1E-C26 - - QF1A-C27 - - QF1E-C27 - - QF1A-C28 - - QF1E-C28 - - QF1A-C29 - - QF1E-C29 - - QF1A-C30 - - QF1E-C30 - - QF1A-C31 - - QF1E-C31 - - QF1A-C32 - - QF1E-C32 - - QF1A-C01 - - QF1E-C01 - - QF1A-C02 - - QF1E-C02 - - QF1A-C03 + - QD2* + - QF1* devices: - type: pyaml.magnet.quadrupole description: "QF1E-C04 quadrupole" diff --git a/tests/test_patterns.py b/tests/test_patterns.py new file mode 100644 index 00000000..4fde9c1c --- /dev/null +++ b/tests/test_patterns.py @@ -0,0 +1,25 @@ +import numpy as np +import pytest + +from pyaml.accelerator import Accelerator + + +def test_tune(): + sr: Accelerator = Accelerator.load( + "tests/config/EBSTune-patterns.yaml", ignore_external=True + ) + sr.design.get_lattice().disable_6d() + + quadForTune = sr.design.get_magnets("QForTune") + assert len(quadForTune.names()) == 124 + + quadForTest = sr.design.get_magnets("QForTest") + assert sr.design.get_magnet("QF1E-C06") is not None + assert sr.design.get_magnet("QF1E-C05") is not None + assert "QF1E-C05" not in quadForTest.names() + assert all( + [ + not (name.startswith("Q") and name.endswith("-C06")) + for name in quadForTest.names() + ] + ) From 1d20e8c24e06b1ecc842d927b55bd24d03d5e8b4 Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Fri, 6 Mar 2026 11:24:32 +0100 Subject: [PATCH 06/11] File size reduction using patterns --- tests/config/EBSOrbit.yaml | 867 +------------------------------------ 1 file changed, 3 insertions(+), 864 deletions(-) diff --git a/tests/config/EBSOrbit.yaml b/tests/config/EBSOrbit.yaml index 6006bb8b..f097c19f 100644 --- a/tests/config/EBSOrbit.yaml +++ b/tests/config/EBSOrbit.yaml @@ -15,876 +15,15 @@ arrays: - type: pyaml.arrays.magnet name: HCorr elements: - - SH1A-C04-H - - SJ1A-C04-H - - SJ2A-C04-H - - SJ1B-C04-H - - SH2B-C04-H - - SJ1D-C04-H - - SJ2E-C04-H - - SJ1E-C04-H - - SH3E-C04-H - - SH1A-C05-H - - SD1A-C05-H - - SF2A-C05-H - - SD1B-C05-H - - SH2B-C05-H - - SD1D-C05-H - - SF2E-C05-H - - SD1E-C05-H - - SH3E-C05-H - - SH1A-C06-H - - SD1A-C06-H - - SF2A-C06-H - - SD1B-C06-H - - SH2B-C06-H - - SD1D-C06-H - - SF2E-C06-H - - SD1E-C06-H - - SH3E-C06-H - - SH1A-C07-H - - SD1A-C07-H - - SF2A-C07-H - - SD1B-C07-H - - SH2B-C07-H - - SD1D-C07-H - - SF2E-C07-H - - SD1E-C07-H - - SH3E-C07-H - - SH1A-C08-H - - SD1A-C08-H - - SF2A-C08-H - - SD1B-C08-H - - SH2B-C08-H - - SD1D-C08-H - - SF2E-C08-H - - SD1E-C08-H - - SH3E-C08-H - - SH1A-C09-H - - SD1A-C09-H - - SF2A-C09-H - - SD1B-C09-H - - SH2B-C09-H - - SD1D-C09-H - - SF2E-C09-H - - SD1E-C09-H - - SH3E-C09-H - - SH1A-C10-H - - SD1A-C10-H - - SF2A-C10-H - - SD1B-C10-H - - SH2B-C10-H - - SD1D-C10-H - - SF2E-C10-H - - SD1E-C10-H - - SH3E-C10-H - - SH1A-C11-H - - SD1A-C11-H - - SF2A-C11-H - - SD1B-C11-H - - SH2B-C11-H - - SD1D-C11-H - - SF2E-C11-H - - SD1E-C11-H - - SH3E-C11-H - - SH1A-C12-H - - SD1A-C12-H - - SF2A-C12-H - - SD1B-C12-H - - SH2B-C12-H - - SD1D-C12-H - - SF2E-C12-H - - SD1E-C12-H - - SH3E-C12-H - - SH1A-C13-H - - SD1A-C13-H - - SF2A-C13-H - - SD1B-C13-H - - SH2B-C13-H - - SD1D-C13-H - - SF2E-C13-H - - SD1E-C13-H - - SH3E-C13-H - - SH1A-C14-H - - SD1A-C14-H - - SF2A-C14-H - - SD1B-C14-H - - SH2B-C14-H - - SD1D-C14-H - - SF2E-C14-H - - SD1E-C14-H - - SH3E-C14-H - - SH1A-C15-H - - SD1A-C15-H - - SF2A-C15-H - - SD1B-C15-H - - SH2B-C15-H - - SD1D-C15-H - - SF2E-C15-H - - SD1E-C15-H - - SH3E-C15-H - - SH1A-C16-H - - SD1A-C16-H - - SF2A-C16-H - - SD1B-C16-H - - SH2B-C16-H - - SD1D-C16-H - - SF2E-C16-H - - SD1E-C16-H - - SH3E-C16-H - - SH1A-C17-H - - SD1A-C17-H - - SF2A-C17-H - - SD1B-C17-H - - SH2B-C17-H - - SD1D-C17-H - - SF2E-C17-H - - SD1E-C17-H - - SH3E-C17-H - - SH1A-C18-H - - SD1A-C18-H - - SF2A-C18-H - - SD1B-C18-H - - SH2B-C18-H - - SD1D-C18-H - - SF2E-C18-H - - SD1E-C18-H - - SH3E-C18-H - - SH1A-C19-H - - SD1A-C19-H - - SF2A-C19-H - - SD1B-C19-H - - SH2B-C19-H - - SD1D-C19-H - - SF2E-C19-H - - SD1E-C19-H - - SH3E-C19-H - - SH1A-C20-H - - SD1A-C20-H - - SF2A-C20-H - - SD1B-C20-H - - SH2B-C20-H - - SD1D-C20-H - - SF2E-C20-H - - SD1E-C20-H - - SH3E-C20-H - - SH1A-C21-H - - SD1A-C21-H - - SF2A-C21-H - - SD1B-C21-H - - SH2B-C21-H - - SD1D-C21-H - - SF2E-C21-H - - SD1E-C21-H - - SH3E-C21-H - - SH1A-C22-H - - SD1A-C22-H - - SF2A-C22-H - - SD1B-C22-H - - SH2B-C22-H - - SD1D-C22-H - - SF2E-C22-H - - SD1E-C22-H - - SH3E-C22-H - - SH1A-C23-H - - SD1A-C23-H - - SF2A-C23-H - - SD1B-C23-H - - SH2B-C23-H - - SD1D-C23-H - - SF2E-C23-H - - SD1E-C23-H - - SH3E-C23-H - - SH1A-C24-H - - SD1A-C24-H - - SF2A-C24-H - - SD1B-C24-H - - SH2B-C24-H - - SD1D-C24-H - - SF2E-C24-H - - SD1E-C24-H - - SH3E-C24-H - - SH1A-C25-H - - SD1A-C25-H - - SF2A-C25-H - - SD1B-C25-H - - SH2B-C25-H - - SD1D-C25-H - - SF2E-C25-H - - SD1E-C25-H - - SH3E-C25-H - - SH1A-C26-H - - SD1A-C26-H - - SF2A-C26-H - - SD1B-C26-H - - SH2B-C26-H - - SD1D-C26-H - - SF2E-C26-H - - SD1E-C26-H - - SH3E-C26-H - - SH1A-C27-H - - SD1A-C27-H - - SF2A-C27-H - - SD1B-C27-H - - SH2B-C27-H - - SD1D-C27-H - - SF2E-C27-H - - SD1E-C27-H - - SH3E-C27-H - - SH1A-C28-H - - SD1A-C28-H - - SF2A-C28-H - - SD1B-C28-H - - SH2B-C28-H - - SD1D-C28-H - - SF2E-C28-H - - SD1E-C28-H - - SH3E-C28-H - - SH1A-C29-H - - SD1A-C29-H - - SF2A-C29-H - - SD1B-C29-H - - SH2B-C29-H - - SD1D-C29-H - - SF2E-C29-H - - SD1E-C29-H - - SH3E-C29-H - - SH1A-C30-H - - SD1A-C30-H - - SF2A-C30-H - - SD1B-C30-H - - SH2B-C30-H - - SD1D-C30-H - - SF2E-C30-H - - SD1E-C30-H - - SH3E-C30-H - - SH1A-C31-H - - SD1A-C31-H - - SF2A-C31-H - - SD1B-C31-H - - SH2B-C31-H - - SD1D-C31-H - - SF2E-C31-H - - SD1E-C31-H - - SH3E-C31-H - - SH1A-C32-H - - SD1A-C32-H - - SF2A-C32-H - - SD1B-C32-H - - SH2B-C32-H - - SD1D-C32-H - - SF2E-C32-H - - SD1E-C32-H - - SH3E-C32-H - - SH1A-C01-H - - SD1A-C01-H - - SF2A-C01-H - - SD1B-C01-H - - SH2B-C01-H - - SD1D-C01-H - - SF2E-C01-H - - SD1E-C01-H - - SH3E-C01-H - - SH1A-C02-H - - SD1A-C02-H - - SF2A-C02-H - - SD1B-C02-H - - SH2B-C02-H - - SD1D-C02-H - - SF2E-C02-H - - SD1E-C02-H - - SH3E-C02-H - - SH1A-C03-H - - SI1A-C03-H - - SI2A-C03-H - - SI1B-C03-H - - SH2B-C03-H - - SI1D-C03-H - - SI2E-C03-H - - SI1E-C03-H - - SH3E-C03-H + - S*-H - type: pyaml.arrays.magnet name: VCorr elements: - - SH1A-C04-V - - SJ1A-C04-V - - SJ2A-C04-V - - SJ1B-C04-V - - SH2B-C04-V - - SJ1D-C04-V - - SJ2E-C04-V - - SJ1E-C04-V - - SH3E-C04-V - - SH1A-C05-V - - SD1A-C05-V - - SF2A-C05-V - - SD1B-C05-V - - SH2B-C05-V - - SD1D-C05-V - - SF2E-C05-V - - SD1E-C05-V - - SH3E-C05-V - - SH1A-C06-V - - SD1A-C06-V - - SF2A-C06-V - - SD1B-C06-V - - SH2B-C06-V - - SD1D-C06-V - - SF2E-C06-V - - SD1E-C06-V - - SH3E-C06-V - - SH1A-C07-V - - SD1A-C07-V - - SF2A-C07-V - - SD1B-C07-V - - SH2B-C07-V - - SD1D-C07-V - - SF2E-C07-V - - SD1E-C07-V - - SH3E-C07-V - - SH1A-C08-V - - SD1A-C08-V - - SF2A-C08-V - - SD1B-C08-V - - SH2B-C08-V - - SD1D-C08-V - - SF2E-C08-V - - SD1E-C08-V - - SH3E-C08-V - - SH1A-C09-V - - SD1A-C09-V - - SF2A-C09-V - - SD1B-C09-V - - SH2B-C09-V - - SD1D-C09-V - - SF2E-C09-V - - SD1E-C09-V - - SH3E-C09-V - - SH1A-C10-V - - SD1A-C10-V - - SF2A-C10-V - - SD1B-C10-V - - SH2B-C10-V - - SD1D-C10-V - - SF2E-C10-V - - SD1E-C10-V - - SH3E-C10-V - - SH1A-C11-V - - SD1A-C11-V - - SF2A-C11-V - - SD1B-C11-V - - SH2B-C11-V - - SD1D-C11-V - - SF2E-C11-V - - SD1E-C11-V - - SH3E-C11-V - - SH1A-C12-V - - SD1A-C12-V - - SF2A-C12-V - - SD1B-C12-V - - SH2B-C12-V - - SD1D-C12-V - - SF2E-C12-V - - SD1E-C12-V - - SH3E-C12-V - - SH1A-C13-V - - SD1A-C13-V - - SF2A-C13-V - - SD1B-C13-V - - SH2B-C13-V - - SD1D-C13-V - - SF2E-C13-V - - SD1E-C13-V - - SH3E-C13-V - - SH1A-C14-V - - SD1A-C14-V - - SF2A-C14-V - - SD1B-C14-V - - SH2B-C14-V - - SD1D-C14-V - - SF2E-C14-V - - SD1E-C14-V - - SH3E-C14-V - - SH1A-C15-V - - SD1A-C15-V - - SF2A-C15-V - - SD1B-C15-V - - SH2B-C15-V - - SD1D-C15-V - - SF2E-C15-V - - SD1E-C15-V - - SH3E-C15-V - - SH1A-C16-V - - SD1A-C16-V - - SF2A-C16-V - - SD1B-C16-V - - SH2B-C16-V - - SD1D-C16-V - - SF2E-C16-V - - SD1E-C16-V - - SH3E-C16-V - - SH1A-C17-V - - SD1A-C17-V - - SF2A-C17-V - - SD1B-C17-V - - SH2B-C17-V - - SD1D-C17-V - - SF2E-C17-V - - SD1E-C17-V - - SH3E-C17-V - - SH1A-C18-V - - SD1A-C18-V - - SF2A-C18-V - - SD1B-C18-V - - SH2B-C18-V - - SD1D-C18-V - - SF2E-C18-V - - SD1E-C18-V - - SH3E-C18-V - - SH1A-C19-V - - SD1A-C19-V - - SF2A-C19-V - - SD1B-C19-V - - SH2B-C19-V - - SD1D-C19-V - - SF2E-C19-V - - SD1E-C19-V - - SH3E-C19-V - - SH1A-C20-V - - SD1A-C20-V - - SF2A-C20-V - - SD1B-C20-V - - SH2B-C20-V - - SD1D-C20-V - - SF2E-C20-V - - SD1E-C20-V - - SH3E-C20-V - - SH1A-C21-V - - SD1A-C21-V - - SF2A-C21-V - - SD1B-C21-V - - SH2B-C21-V - - SD1D-C21-V - - SF2E-C21-V - - SD1E-C21-V - - SH3E-C21-V - - SH1A-C22-V - - SD1A-C22-V - - SF2A-C22-V - - SD1B-C22-V - - SH2B-C22-V - - SD1D-C22-V - - SF2E-C22-V - - SD1E-C22-V - - SH3E-C22-V - - SH1A-C23-V - - SD1A-C23-V - - SF2A-C23-V - - SD1B-C23-V - - SH2B-C23-V - - SD1D-C23-V - - SF2E-C23-V - - SD1E-C23-V - - SH3E-C23-V - - SH1A-C24-V - - SD1A-C24-V - - SF2A-C24-V - - SD1B-C24-V - - SH2B-C24-V - - SD1D-C24-V - - SF2E-C24-V - - SD1E-C24-V - - SH3E-C24-V - - SH1A-C25-V - - SD1A-C25-V - - SF2A-C25-V - - SD1B-C25-V - - SH2B-C25-V - - SD1D-C25-V - - SF2E-C25-V - - SD1E-C25-V - - SH3E-C25-V - - SH1A-C26-V - - SD1A-C26-V - - SF2A-C26-V - - SD1B-C26-V - - SH2B-C26-V - - SD1D-C26-V - - SF2E-C26-V - - SD1E-C26-V - - SH3E-C26-V - - SH1A-C27-V - - SD1A-C27-V - - SF2A-C27-V - - SD1B-C27-V - - SH2B-C27-V - - SD1D-C27-V - - SF2E-C27-V - - SD1E-C27-V - - SH3E-C27-V - - SH1A-C28-V - - SD1A-C28-V - - SF2A-C28-V - - SD1B-C28-V - - SH2B-C28-V - - SD1D-C28-V - - SF2E-C28-V - - SD1E-C28-V - - SH3E-C28-V - - SH1A-C29-V - - SD1A-C29-V - - SF2A-C29-V - - SD1B-C29-V - - SH2B-C29-V - - SD1D-C29-V - - SF2E-C29-V - - SD1E-C29-V - - SH3E-C29-V - - SH1A-C30-V - - SD1A-C30-V - - SF2A-C30-V - - SD1B-C30-V - - SH2B-C30-V - - SD1D-C30-V - - SF2E-C30-V - - SD1E-C30-V - - SH3E-C30-V - - SH1A-C31-V - - SD1A-C31-V - - SF2A-C31-V - - SD1B-C31-V - - SH2B-C31-V - - SD1D-C31-V - - SF2E-C31-V - - SD1E-C31-V - - SH3E-C31-V - - SH1A-C32-V - - SD1A-C32-V - - SF2A-C32-V - - SD1B-C32-V - - SH2B-C32-V - - SD1D-C32-V - - SF2E-C32-V - - SD1E-C32-V - - SH3E-C32-V - - SH1A-C01-V - - SD1A-C01-V - - SF2A-C01-V - - SD1B-C01-V - - SH2B-C01-V - - SD1D-C01-V - - SF2E-C01-V - - SD1E-C01-V - - SH3E-C01-V - - SH1A-C02-V - - SD1A-C02-V - - SF2A-C02-V - - SD1B-C02-V - - SH2B-C02-V - - SD1D-C02-V - - SF2E-C02-V - - SD1E-C02-V - - SH3E-C02-V - - SH1A-C03-V - - SI1A-C03-V - - SI2A-C03-V - - SI1B-C03-V - - SH2B-C03-V - - SI1D-C03-V - - SI2E-C03-V - - SI1E-C03-V - - SH3E-C03-V + - S*-V - type: pyaml.arrays.magnet name: Skews elements: - - SH1A-C04-SQ - - SJ1A-C04-SQ - - SJ2A-C04-SQ - - SJ1B-C04-SQ - - SH2B-C04-SQ - - SJ1D-C04-SQ - - SJ2E-C04-SQ - - SJ1E-C04-SQ - - SH3E-C04-SQ - - SH1A-C05-SQ - - SD1A-C05-SQ - - SF2A-C05-SQ - - SD1B-C05-SQ - - SH2B-C05-SQ - - SD1D-C05-SQ - - SF2E-C05-SQ - - SD1E-C05-SQ - - SH3E-C05-SQ - - SH1A-C06-SQ - - SD1A-C06-SQ - - SF2A-C06-SQ - - SD1B-C06-SQ - - SH2B-C06-SQ - - SD1D-C06-SQ - - SF2E-C06-SQ - - SD1E-C06-SQ - - SH3E-C06-SQ - - SH1A-C07-SQ - - SD1A-C07-SQ - - SF2A-C07-SQ - - SD1B-C07-SQ - - SH2B-C07-SQ - - SD1D-C07-SQ - - SF2E-C07-SQ - - SD1E-C07-SQ - - SH3E-C07-SQ - - SH1A-C08-SQ - - SD1A-C08-SQ - - SF2A-C08-SQ - - SD1B-C08-SQ - - SH2B-C08-SQ - - SD1D-C08-SQ - - SF2E-C08-SQ - - SD1E-C08-SQ - - SH3E-C08-SQ - - SH1A-C09-SQ - - SD1A-C09-SQ - - SF2A-C09-SQ - - SD1B-C09-SQ - - SH2B-C09-SQ - - SD1D-C09-SQ - - SF2E-C09-SQ - - SD1E-C09-SQ - - SH3E-C09-SQ - - SH1A-C10-SQ - - SD1A-C10-SQ - - SF2A-C10-SQ - - SD1B-C10-SQ - - SH2B-C10-SQ - - SD1D-C10-SQ - - SF2E-C10-SQ - - SD1E-C10-SQ - - SH3E-C10-SQ - - SH1A-C11-SQ - - SD1A-C11-SQ - - SF2A-C11-SQ - - SD1B-C11-SQ - - SH2B-C11-SQ - - SD1D-C11-SQ - - SF2E-C11-SQ - - SD1E-C11-SQ - - SH3E-C11-SQ - - SH1A-C12-SQ - - SD1A-C12-SQ - - SF2A-C12-SQ - - SD1B-C12-SQ - - SH2B-C12-SQ - - SD1D-C12-SQ - - SF2E-C12-SQ - - SD1E-C12-SQ - - SH3E-C12-SQ - - SH1A-C13-SQ - - SD1A-C13-SQ - - SF2A-C13-SQ - - SD1B-C13-SQ - - SH2B-C13-SQ - - SD1D-C13-SQ - - SF2E-C13-SQ - - SD1E-C13-SQ - - SH3E-C13-SQ - - SH1A-C14-SQ - - SD1A-C14-SQ - - SF2A-C14-SQ - - SD1B-C14-SQ - - SH2B-C14-SQ - - SD1D-C14-SQ - - SF2E-C14-SQ - - SD1E-C14-SQ - - SH3E-C14-SQ - - SH1A-C15-SQ - - SD1A-C15-SQ - - SF2A-C15-SQ - - SD1B-C15-SQ - - SH2B-C15-SQ - - SD1D-C15-SQ - - SF2E-C15-SQ - - SD1E-C15-SQ - - SH3E-C15-SQ - - SH1A-C16-SQ - - SD1A-C16-SQ - - SF2A-C16-SQ - - SD1B-C16-SQ - - SH2B-C16-SQ - - SD1D-C16-SQ - - SF2E-C16-SQ - - SD1E-C16-SQ - - SH3E-C16-SQ - - SH1A-C17-SQ - - SD1A-C17-SQ - - SF2A-C17-SQ - - SD1B-C17-SQ - - SH2B-C17-SQ - - SD1D-C17-SQ - - SF2E-C17-SQ - - SD1E-C17-SQ - - SH3E-C17-SQ - - SH1A-C18-SQ - - SD1A-C18-SQ - - SF2A-C18-SQ - - SD1B-C18-SQ - - SH2B-C18-SQ - - SD1D-C18-SQ - - SF2E-C18-SQ - - SD1E-C18-SQ - - SH3E-C18-SQ - - SH1A-C19-SQ - - SD1A-C19-SQ - - SF2A-C19-SQ - - SD1B-C19-SQ - - SH2B-C19-SQ - - SD1D-C19-SQ - - SF2E-C19-SQ - - SD1E-C19-SQ - - SH3E-C19-SQ - - SH1A-C20-SQ - - SD1A-C20-SQ - - SF2A-C20-SQ - - SD1B-C20-SQ - - SH2B-C20-SQ - - SD1D-C20-SQ - - SF2E-C20-SQ - - SD1E-C20-SQ - - SH3E-C20-SQ - - SH1A-C21-SQ - - SD1A-C21-SQ - - SF2A-C21-SQ - - SD1B-C21-SQ - - SH2B-C21-SQ - - SD1D-C21-SQ - - SF2E-C21-SQ - - SD1E-C21-SQ - - SH3E-C21-SQ - - SH1A-C22-SQ - - SD1A-C22-SQ - - SF2A-C22-SQ - - SD1B-C22-SQ - - SH2B-C22-SQ - - SD1D-C22-SQ - - SF2E-C22-SQ - - SD1E-C22-SQ - - SH3E-C22-SQ - - SH1A-C23-SQ - - SD1A-C23-SQ - - SF2A-C23-SQ - - SD1B-C23-SQ - - SH2B-C23-SQ - - SD1D-C23-SQ - - SF2E-C23-SQ - - SD1E-C23-SQ - - SH3E-C23-SQ - - SH1A-C24-SQ - - SD1A-C24-SQ - - SF2A-C24-SQ - - SD1B-C24-SQ - - SH2B-C24-SQ - - SD1D-C24-SQ - - SF2E-C24-SQ - - SD1E-C24-SQ - - SH3E-C24-SQ - - SH1A-C25-SQ - - SD1A-C25-SQ - - SF2A-C25-SQ - - SD1B-C25-SQ - - SH2B-C25-SQ - - SD1D-C25-SQ - - SF2E-C25-SQ - - SD1E-C25-SQ - - SH3E-C25-SQ - - SH1A-C26-SQ - - SD1A-C26-SQ - - SF2A-C26-SQ - - SD1B-C26-SQ - - SH2B-C26-SQ - - SD1D-C26-SQ - - SF2E-C26-SQ - - SD1E-C26-SQ - - SH3E-C26-SQ - - SH1A-C27-SQ - - SD1A-C27-SQ - - SF2A-C27-SQ - - SD1B-C27-SQ - - SH2B-C27-SQ - - SD1D-C27-SQ - - SF2E-C27-SQ - - SD1E-C27-SQ - - SH3E-C27-SQ - - SH1A-C28-SQ - - SD1A-C28-SQ - - SF2A-C28-SQ - - SD1B-C28-SQ - - SH2B-C28-SQ - - SD1D-C28-SQ - - SF2E-C28-SQ - - SD1E-C28-SQ - - SH3E-C28-SQ - - SH1A-C29-SQ - - SD1A-C29-SQ - - SF2A-C29-SQ - - SD1B-C29-SQ - - SH2B-C29-SQ - - SD1D-C29-SQ - - SF2E-C29-SQ - - SD1E-C29-SQ - - SH3E-C29-SQ - - SH1A-C30-SQ - - SD1A-C30-SQ - - SF2A-C30-SQ - - SD1B-C30-SQ - - SH2B-C30-SQ - - SD1D-C30-SQ - - SF2E-C30-SQ - - SD1E-C30-SQ - - SH3E-C30-SQ - - SH1A-C31-SQ - - SD1A-C31-SQ - - SF2A-C31-SQ - - SD1B-C31-SQ - - SH2B-C31-SQ - - SD1D-C31-SQ - - SF2E-C31-SQ - - SD1E-C31-SQ - - SH3E-C31-SQ - - SH1A-C32-SQ - - SD1A-C32-SQ - - SF2A-C32-SQ - - SD1B-C32-SQ - - SH2B-C32-SQ - - SD1D-C32-SQ - - SF2E-C32-SQ - - SD1E-C32-SQ - - SH3E-C32-SQ - - SH1A-C01-SQ - - SD1A-C01-SQ - - SF2A-C01-SQ - - SD1B-C01-SQ - - SH2B-C01-SQ - - SD1D-C01-SQ - - SF2E-C01-SQ - - SD1E-C01-SQ - - SH3E-C01-SQ - - SH1A-C02-SQ - - SD1A-C02-SQ - - SF2A-C02-SQ - - SD1B-C02-SQ - - SH2B-C02-SQ - - SD1D-C02-SQ - - SF2E-C02-SQ - - SD1E-C02-SQ - - SH3E-C02-SQ - - SH1A-C03-SQ - - SI1A-C03-SQ - - SI2A-C03-SQ - - SI1B-C03-SQ - - SH2B-C03-SQ - - SI1D-C03-SQ - - SI2E-C03-SQ - - SI1E-C03-SQ - - SH3E-C03-SQ + - S*-SQ - type: pyaml.arrays.bpm name: BPM elements: From f93d72272d4d49a15ca2154e305f4cb3c52b6677 Mon Sep 17 00:00:00 2001 From: PONS Date: Tue, 10 Mar 2026 13:43:08 +0100 Subject: [PATCH 07/11] Removed unused declarations --- pyaml/common/element_holder.py | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/pyaml/common/element_holder.py b/pyaml/common/element_holder.py index f5b1d3be..54b94434 100644 --- a/pyaml/common/element_holder.py +++ b/pyaml/common/element_holder.py @@ -35,16 +35,6 @@ class ElementHolder(object): simulators and control system """ - __MAGNETS: dict[str, Magnet] - __CFM_MAGNETS: dict[str, CombinedFunctionMagnet] - __SERIALIZED_MAGNETS: dict[str, SerializedMagnets] - __BPMS: dict[str, BPM] - __RFPLANT: dict[str, RFPlant] - __RFTRANSMITTER: dict[str, RFTransmitter] - __DIAG: dict[str, Element] - __TUNING_TOOLS: dict[str, Element] - __ALL: dict[str, Element] - def __init__(self): # Device handle self.__MAGNETS: dict[str, Magnet] = {} From 6e4ffd73360081daf1a3a5040619d18d560a26e3 Mon Sep 17 00:00:00 2001 From: PONS Date: Tue, 10 Mar 2026 14:03:28 +0100 Subject: [PATCH 08/11] Restored order of devices --- pyaml/common/element_holder.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pyaml/common/element_holder.py b/pyaml/common/element_holder.py index 54b94434..5b345ebd 100644 --- a/pyaml/common/element_holder.py +++ b/pyaml/common/element_holder.py @@ -92,6 +92,7 @@ def fill_array( constructor, ARR: dict, ): + # Handle wildcard, regexp and exclusion pattern all_names: list[str] = [] excluded_names: list[str] = [] for name in element_names: @@ -104,9 +105,6 @@ def fill_array( [all_names.remove(name) for name in excluded_names] - order = {elem_name: i for i, elem_name in enumerate(self.__ALL.keys())} - all_names = sorted(all_names, key=lambda num: order[num]) - a = [] for n in all_names: try: From 665f41d8db811f70940a80f7a27bb73bbf0f60c3 Mon Sep 17 00:00:00 2001 From: PONS Date: Tue, 10 Mar 2026 14:04:12 +0100 Subject: [PATCH 09/11] Restored initial tests --- tests/test_arrays.py | 6 +++--- tests/test_tune_hardware.py | 5 ++--- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/tests/test_arrays.py b/tests/test_arrays.py index 4b921b40..37b70365 100644 --- a/tests/test_arrays.py +++ b/tests/test_arrays.py @@ -99,8 +99,8 @@ def test_arrays(install_test_package): strHV = sr.live.get_magnets("HVCORR").strengths.get() assert np.abs(strHV[0] - 0.000010) < 1e-10 - assert np.abs(strHV[1] - 0.000015) < 1e-10 - assert np.abs(strHV[2] + 0.000008) < 1e-10 + assert np.abs(strHV[1] + 0.000008) < 1e-10 + assert np.abs(strHV[2] - 0.000015) < 1e-10 assert np.abs(strHV[3] + 0.000017) < 1e-10 # Reset to 0 @@ -122,7 +122,7 @@ def test_arrays(install_test_package): for m in sr.live.get_magnets("HVCORR"): mags.append(m) array = MagnetArray("HVCOOR_noagg", mags, use_aggregator=False) - array.strengths.set([0.000010, 0.000015, -0.000008, -0.000017]) + array.strengths.set([0.000010, -0.000008, 0.000015, -0.000017]) ps1 = sr.live.get_cfm_magnet("SH1A-C01").hardwares.get() ps2 = sr.live.get_cfm_magnet("SH1A-C02").hardwares.get() assert np.abs(ps1[0] - 0.02956737880874648) < 1e-10 diff --git a/tests/test_tune_hardware.py b/tests/test_tune_hardware.py index 8b384dc7..d5b9529e 100644 --- a/tests/test_tune_hardware.py +++ b/tests/test_tune_hardware.py @@ -38,9 +38,8 @@ def test_tune(): newTune = tune_monitor.tune.get() units = quadForTuneDesign.hardwares.unit() diffTune = newTune - tune - assert np.abs(diffTune[0] - 0.1) < 1e-3 assert np.abs(diffTune[1] - 0.05) < 1.1e-3 - assert np.abs(currents[62] - 88.04522942) < 1e-8 - assert np.abs(currents[63] - 88.26677735) < 1e-8 + assert np.abs(currents[0] - 88.04522942) < 1e-8 + assert np.abs(currents[1] - 88.26677735) < 1e-8 assert units[0] == "A" and units[1] == "A" From cfa36e485b0b0f1e9b9610818158dad6d6d4ca49 Mon Sep 17 00:00:00 2001 From: PONS Date: Tue, 10 Mar 2026 14:26:38 +0100 Subject: [PATCH 10/11] Restored fileloader.py --- pyaml/configuration/fileloader.py | 92 ++++--------------------------- 1 file changed, 12 insertions(+), 80 deletions(-) diff --git a/pyaml/configuration/fileloader.py b/pyaml/configuration/fileloader.py index 7b8ee01b..6df60c1d 100644 --- a/pyaml/configuration/fileloader.py +++ b/pyaml/configuration/fileloader.py @@ -4,7 +4,6 @@ import json import logging import os -import textwrap from pathlib import Path from typing import TYPE_CHECKING, Union @@ -13,6 +12,8 @@ from yaml.constructor import ConstructorError from yaml.loader import SafeLoader +from pyaml.configuration.factory import Factory + from .. import PyAMLException if TYPE_CHECKING: @@ -23,7 +24,6 @@ accepted_suffixes = [".yaml", ".yml", ".json"] FILE_PREFIX = "file:" -elements_code_tag = "elements_code" ROOT = {"path": Path.cwd().resolve()} @@ -88,44 +88,6 @@ def hasToLoad(value): ) -# Expand condition for dynamic code execution -def has_to_execute(key: str, value): - """ - Return True if the current dict entry corresponds to executable code. - - The execution is triggered only when: - - the key is exactly "elements_code" - - the value is a string (code snippet) - - This keeps behavior explicit and avoids accidental execution. - """ - return key == elements_code_tag and isinstance(value, str) - - -def execute_configuration_code(code: str): - clean_code = textwrap.dedent(code).strip() - wrapped = "def _f():\n" + textwrap.indent(clean_code.strip(), " ") - compiled = compile(wrapped, "", "exec") - - ns = {} - exec(compiled, ns) - - return ns["_f"]() - - -def extract_location(d: dict, key: str) -> str: - location = d.pop("__location__", None) - field_locations = d.pop("__fieldlocations__", None) - location_str = "" - if location: - file, line, col = location - if field_locations and key in field_locations: - location = field_locations[key] - file, line, col = location - location_str = f" in {file} at line {line}, column {col}" - return location_str - - # Loader base class (nested files expansion) class Loader: def __init__(self, filename: str, parent_path_stack: list[Path]): @@ -150,23 +112,18 @@ def expand_dict(self, d: dict): d[key] = str(get_root_folder() / Path(stripped_value)) else: d[key] = load(value, self.files_stack, self.use_fast_loader) - elif has_to_execute(key, value): - exec_result = execute_configuration_code(value) - d.pop(key, None) - if isinstance(exec_result, dict): - self.expand(exec_result) - d.update(exec_result) - else: - location_str = extract_location(d, key) - raise PyAMLException( - f"The type returned by an elements_code" - f" block was of type {type(exec_result)}" - f" while a dict was expected{location_str}" - ) else: self.expand(value) except PyAMLConfigCyclingException as pyaml_ex: - location_str = extract_location(d, key) + location = d.pop("__location__", None) + field_locations = d.pop("__fieldlocations__", None) + location_str = "" + if location: + file, line, col = location + if field_locations and key in field_locations: + location = field_locations[key] + file, line, col = location + location_str = f" in {file} at line {line}, column {col}" raise PyAMLException( "Circular file inclusion " f"of {pyaml_ex.error_filename}{location_str}" @@ -174,37 +131,12 @@ def expand_dict(self, d: dict): # Recursively expand a list def expand_list(self, l: list): - idx = 0 - while idx < len(l): - value = l[idx] - - # Special case: list item is a pure code-macro dict {"elements_code": "..."} - if isinstance(value, dict) and elements_code_tag in value.keys(): - result = execute_configuration_code(value[elements_code_tag]) - - if isinstance(result, list): - # Replace the macro item with all generated items - l[idx : idx + 1] = result - # Expand each inserted item - for j in range(idx, idx + len(result)): - self.expand(l[j]) - idx += len(result) - else: - # It should be a dict, but we accept everything as a custom - # strategy can be used. - l[idx] = result - self.expand(l[idx]) - idx += 1 - continue - - # Default behavior + for idx, value in enumerate(l): if hasToLoad(value): l[idx] = load(value, self.files_stack) else: self.expand(value) - idx += 1 - # Recursively expand an object def expand(self, obj: Union[dict, list]): if isinstance(obj, dict): From 0c98c3e1204efcefa68f5238575b51d4f5797f13 Mon Sep 17 00:00:00 2001 From: PONS Date: Tue, 10 Mar 2026 14:27:04 +0100 Subject: [PATCH 11/11] Restored EBSOrbit.yaml --- tests/config/EBSOrbit.yaml | 3864 +++++++++++++++++++++++++++++++++++- 1 file changed, 3841 insertions(+), 23 deletions(-) diff --git a/tests/config/EBSOrbit.yaml b/tests/config/EBSOrbit.yaml index 0b7cb4df..466de1a9 100644 --- a/tests/config/EBSOrbit.yaml +++ b/tests/config/EBSOrbit.yaml @@ -27,8 +27,7 @@ arrays: - type: pyaml.arrays.bpm name: BPM elements: - - re:^BPM_C(0[4-9]|1[0-9]|2[0-9]|3[0-2]).*$ - - re:^BPM_C(0[1-3]).*$ + - BPM* devices: - type: pyaml.diagnostics.tune_monitor name: BETATRON_TUNE @@ -7677,24 +7676,3843 @@ devices: - type: tango.pyaml.attribute attribute: srmag/ps-corr-sh3/c03-e-ch6/current unit: A -- elements_code: | - out:list[dict] = [] - ranges = [(4,33), (1,4)] - for r in ranges: - for cell in range(r[0], r[1]): - for elem in range(1, 11): - bpm = {"type": "pyaml.bpm.bpm", - "name": f"BPM_C{cell:02d}-{elem:02d}", - "model": {"type": "pyaml.bpm.bpm_simple_model", - "x_pos": { "type": "tango.pyaml.attribute_read_only", - "attribute": f"srdiag/bpm/c{cell:02d}-{elem:02d}/SA_HPosition", - "unit": "m", - }, - "y_pos": {"type": "tango.pyaml.attribute_read_only", - "attribute": f"srdiag/bpm/c{cell:02d}-{elem:02d}/SA_VPosition", - "unit": "m", - }, - } - } - out.append(bpm) - return out +- type: pyaml.bpm.bpm + name: BPM_C04-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-01/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-01/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C04-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-02/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-02/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C04-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-03/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-03/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C04-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-04/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-04/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C04-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-05/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-05/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C04-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-06/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-06/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C04-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-07/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-07/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C04-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-08/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-08/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C04-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-09/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-09/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C04-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-10/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-10/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C05-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-01/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-01/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C05-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-02/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-02/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C05-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-03/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-03/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C05-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-04/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-04/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C05-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-05/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-05/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C05-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-06/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-06/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C05-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-07/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-07/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C05-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-08/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-08/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C05-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-09/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-09/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C05-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-10/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-10/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C06-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-01/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-01/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C06-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-02/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-02/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C06-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-03/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-03/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C06-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-04/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-04/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C06-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-05/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-05/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C06-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-06/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-06/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C06-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-07/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-07/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C06-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-08/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-08/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C06-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-09/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-09/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C06-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-10/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-10/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C07-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-01/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-01/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C07-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-02/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-02/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C07-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-03/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-03/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C07-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-04/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-04/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C07-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-05/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-05/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C07-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-06/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-06/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C07-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-07/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-07/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C07-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-08/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-08/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C07-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-09/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-09/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C07-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-10/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-10/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C08-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-01/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-01/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C08-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-02/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-02/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C08-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-03/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-03/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C08-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-04/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-04/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C08-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-05/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-05/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C08-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-06/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-06/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C08-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-07/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-07/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C08-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-08/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-08/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C08-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-09/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-09/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C08-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-10/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-10/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C09-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-01/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-01/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C09-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-02/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-02/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C09-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-03/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-03/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C09-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-04/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-04/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C09-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-05/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-05/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C09-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-06/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-06/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C09-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-07/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-07/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C09-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-08/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-08/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C09-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-09/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-09/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C09-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-10/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-10/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C10-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-01/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-01/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C10-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-02/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-02/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C10-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-03/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-03/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C10-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-04/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-04/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C10-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-05/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-05/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C10-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-06/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-06/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C10-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-07/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-07/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C10-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-08/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-08/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C10-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-09/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-09/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C10-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-10/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-10/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C11-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-01/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-01/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C11-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-02/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-02/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C11-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-03/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-03/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C11-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-04/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-04/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C11-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-05/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-05/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C11-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-06/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-06/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C11-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-07/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-07/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C11-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-08/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-08/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C11-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-09/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-09/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C11-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-10/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-10/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C12-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-01/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-01/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C12-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-02/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-02/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C12-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-03/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-03/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C12-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-04/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-04/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C12-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-05/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-05/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C12-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-06/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-06/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C12-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-07/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-07/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C12-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-08/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-08/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C12-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-09/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-09/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C12-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-10/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-10/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C13-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-01/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-01/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C13-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-02/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-02/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C13-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-03/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-03/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C13-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-04/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-04/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C13-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-05/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-05/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C13-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-06/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-06/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C13-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-07/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-07/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C13-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-08/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-08/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C13-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-09/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-09/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C13-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-10/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-10/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C14-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-01/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-01/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C14-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-02/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-02/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C14-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-03/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-03/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C14-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-04/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-04/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C14-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-05/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-05/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C14-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-06/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-06/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C14-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-07/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-07/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C14-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-08/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-08/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C14-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-09/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-09/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C14-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-10/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-10/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C15-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-01/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-01/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C15-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-02/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-02/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C15-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-03/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-03/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C15-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-04/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-04/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C15-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-05/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-05/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C15-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-06/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-06/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C15-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-07/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-07/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C15-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-08/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-08/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C15-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-09/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-09/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C15-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-10/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-10/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C16-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-01/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-01/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C16-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-02/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-02/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C16-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-03/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-03/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C16-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-04/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-04/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C16-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-05/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-05/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C16-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-06/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-06/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C16-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-07/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-07/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C16-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-08/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-08/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C16-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-09/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-09/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C16-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-10/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-10/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C17-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-01/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-01/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C17-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-02/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-02/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C17-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-03/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-03/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C17-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-04/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-04/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C17-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-05/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-05/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C17-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-06/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-06/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C17-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-07/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-07/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C17-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-08/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-08/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C17-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-09/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-09/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C17-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-10/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-10/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C18-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-01/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-01/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C18-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-02/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-02/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C18-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-03/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-03/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C18-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-04/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-04/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C18-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-05/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-05/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C18-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-06/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-06/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C18-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-07/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-07/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C18-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-08/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-08/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C18-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-09/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-09/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C18-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-10/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-10/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C19-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-01/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-01/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C19-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-02/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-02/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C19-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-03/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-03/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C19-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-04/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-04/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C19-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-05/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-05/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C19-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-06/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-06/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C19-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-07/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-07/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C19-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-08/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-08/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C19-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-09/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-09/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C19-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-10/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-10/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C20-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-01/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-01/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C20-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-02/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-02/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C20-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-03/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-03/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C20-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-04/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-04/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C20-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-05/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-05/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C20-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-06/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-06/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C20-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-07/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-07/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C20-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-08/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-08/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C20-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-09/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-09/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C20-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-10/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-10/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C21-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-01/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-01/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C21-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-02/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-02/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C21-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-03/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-03/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C21-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-04/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-04/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C21-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-05/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-05/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C21-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-06/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-06/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C21-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-07/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-07/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C21-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-08/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-08/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C21-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-09/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-09/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C21-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-10/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-10/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C22-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-01/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-01/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C22-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-02/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-02/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C22-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-03/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-03/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C22-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-04/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-04/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C22-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-05/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-05/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C22-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-06/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-06/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C22-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-07/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-07/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C22-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-08/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-08/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C22-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-09/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-09/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C22-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-10/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-10/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C23-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-01/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-01/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C23-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-02/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-02/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C23-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-03/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-03/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C23-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-04/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-04/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C23-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-05/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-05/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C23-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-06/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-06/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C23-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-07/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-07/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C23-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-08/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-08/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C23-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-09/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-09/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C23-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-10/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-10/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C24-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-01/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-01/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C24-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-02/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-02/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C24-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-03/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-03/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C24-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-04/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-04/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C24-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-05/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-05/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C24-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-06/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-06/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C24-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-07/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-07/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C24-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-08/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-08/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C24-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-09/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-09/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C24-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-10/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-10/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C25-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-01/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-01/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C25-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-02/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-02/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C25-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-03/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-03/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C25-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-04/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-04/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C25-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-05/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-05/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C25-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-06/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-06/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C25-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-07/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-07/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C25-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-08/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-08/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C25-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-09/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-09/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C25-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-10/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-10/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C26-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-01/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-01/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C26-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-02/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-02/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C26-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-03/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-03/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C26-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-04/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-04/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C26-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-05/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-05/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C26-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-06/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-06/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C26-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-07/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-07/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C26-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-08/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-08/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C26-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-09/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-09/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C26-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-10/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-10/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C27-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-01/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-01/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C27-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-02/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-02/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C27-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-03/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-03/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C27-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-04/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-04/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C27-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-05/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-05/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C27-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-06/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-06/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C27-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-07/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-07/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C27-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-08/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-08/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C27-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-09/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-09/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C27-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-10/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-10/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C28-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-01/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-01/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C28-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-02/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-02/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C28-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-03/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-03/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C28-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-04/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-04/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C28-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-05/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-05/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C28-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-06/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-06/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C28-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-07/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-07/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C28-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-08/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-08/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C28-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-09/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-09/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C28-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-10/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-10/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C29-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-01/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-01/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C29-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-02/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-02/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C29-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-03/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-03/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C29-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-04/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-04/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C29-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-05/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-05/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C29-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-06/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-06/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C29-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-07/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-07/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C29-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-08/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-08/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C29-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-09/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-09/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C29-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-10/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-10/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C30-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-01/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-01/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C30-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-02/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-02/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C30-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-03/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-03/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C30-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-04/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-04/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C30-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-05/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-05/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C30-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-06/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-06/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C30-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-07/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-07/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C30-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-08/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-08/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C30-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-09/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-09/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C30-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-10/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-10/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C31-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-01/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-01/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C31-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-02/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-02/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C31-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-03/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-03/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C31-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-04/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-04/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C31-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-05/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-05/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C31-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-06/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-06/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C31-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-07/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-07/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C31-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-08/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-08/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C31-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-09/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-09/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C31-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-10/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-10/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C32-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-01/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-01/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C32-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-02/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-02/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C32-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-03/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-03/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C32-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-04/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-04/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C32-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-05/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-05/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C32-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-06/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-06/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C32-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-07/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-07/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C32-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-08/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-08/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C32-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-09/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-09/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C32-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-10/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-10/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C01-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-01/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-01/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C01-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-02/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-02/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C01-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-03/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-03/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C01-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-04/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-04/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C01-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-05/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-05/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C01-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-06/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-06/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C01-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-07/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-07/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C01-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-08/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-08/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C01-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-09/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-09/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C01-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-10/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-10/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C02-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-01/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-01/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C02-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-02/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-02/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C02-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-03/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-03/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C02-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-04/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-04/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C02-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-05/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-05/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C02-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-06/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-06/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C02-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-07/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-07/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C02-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-08/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-08/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C02-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-09/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-09/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C02-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-10/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-10/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C03-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-01/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-01/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C03-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-02/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-02/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C03-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-03/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-03/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C03-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-04/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-04/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C03-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-05/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-05/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C03-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-06/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-06/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C03-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-07/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-07/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C03-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-08/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-08/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C03-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-09/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-09/SA_VPosition + unit: m +- type: pyaml.bpm.bpm + name: BPM_C03-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-10/SA_HPosition + unit: m + y_pos: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-10/SA_VPosition + unit: m