From b557d1aec8586928a5089cd5f4e91da07ead15bd Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Wed, 11 Feb 2026 15:36:22 +0100 Subject: [PATCH 01/14] First catalog version with first reference in a test. --- pyaml/accelerator.py | 5 + pyaml/configuration/catalog.py | 155 +++++++++++++++++++++++++++ pyaml/configuration/catalog_entry.py | 74 +++++++++++++ pyaml/control/controlsystem.py | 5 + tests/config/bpms.yaml | 27 +++++ 5 files changed, 266 insertions(+) create mode 100644 pyaml/configuration/catalog.py create mode 100644 pyaml/configuration/catalog_entry.py diff --git a/pyaml/accelerator.py b/pyaml/accelerator.py index 34ecc575..62d5e471 100644 --- a/pyaml/accelerator.py +++ b/pyaml/accelerator.py @@ -9,6 +9,7 @@ from .arrays.array import ArrayConfig from .common.element import Element from .common.exception import PyAMLConfigException +from .configuration.catalog import Catalog from .configuration.factory import Factory from .configuration.fileloader import load, set_root_folder from .control.controlsystem import ControlSystem @@ -44,6 +45,8 @@ class ConfigModel(BaseModel): Acceleration description devices : list[Element] Element list + control_system_catalog : Catalog + catalog of DeviceAccess objects """ model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") @@ -57,6 +60,7 @@ class ConfigModel(BaseModel): description: str | None = None arrays: list[ArrayConfig] = Field(default=None, repr=False) devices: list[Element] = Field(repr=False) + control_system_catalog: Catalog = Field(repr=False) class Accelerator(object): @@ -69,6 +73,7 @@ def __init__(self, cfg: ConfigModel): if cfg.controls is not None: for c in cfg.controls: + c.set_catalog(cfg.control_system_catalog) if c.name() == "live": self.__live = c else: diff --git a/pyaml/configuration/catalog.py b/pyaml/configuration/catalog.py new file mode 100644 index 00000000..13706261 --- /dev/null +++ b/pyaml/configuration/catalog.py @@ -0,0 +1,155 @@ +import re +from typing import Pattern + +from pydantic import BaseModel, ConfigDict, model_validator + +from pyaml import PyAMLException +from pyaml.configuration.catalog_entry import CatalogEntry, CatalogValue +from pyaml.configuration.catalog_entry import ConfigModel as CatalogEntryConfigModel +from pyaml.control.deviceaccess import DeviceAccess + +# Define the main class name for this module +PYAMLCLASS = "Catalog" + + +class ConfigModel(BaseModel): + """ + Configuration model for a value catalog. + + Attributes + ---------- + refs : list[CatalogEntryConfigModel] + List of catalog entries. + """ + + model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") + + refs: list[CatalogEntry] + + @model_validator(mode="after") + def _validate_unique_references(self) -> "ConfigModel": + """ + Ensure that all references are unique within the catalog. + """ + seen: set[str] = set() + for entry in self.refs: + if entry.get_reference() in seen: + raise ValueError( + f"Duplicate catalog reference: '{entry.get_reference()}'." + ) + seen.add(entry.get_reference()) + return self + + +class Catalog: + """ + A simple registry mapping reference keys to DeviceAccess objects. + + The catalog is intentionally minimal: + - It resolves references to DeviceAccess or list[DeviceAccess] + - It does NOT expose any DeviceAccess-like interface (no get/set/readback/etc.) + """ + + def __init__(self, cfg: ConfigModel): + self._entries: dict[str, CatalogValue] = {} + for ref in cfg.refs: + self.add(ref.get_reference(), ref.get_value()) + + # ------------------------------------------------------------------ + + def add(self, reference: str, value: CatalogValue): + """ + Register a reference in the catalog. + + Raises + ------ + PyAMLException + If the reference already exists. + """ + if reference in self._entries: + raise PyAMLException(f"Duplicate catalog reference: '{reference}'") + self._entries[reference] = value + + # ------------------------------------------------------------------ + + def get(self, reference: str) -> CatalogValue: + """ + Resolve a reference key. + + Returns + ------- + DeviceAccess | list[DeviceAccess] + + Raises + ------ + PyAMLException + If the reference does not exist. + """ + try: + return self._entries[reference] + except KeyError as exc: + raise PyAMLException(f"Catalog reference '{reference}' not found.") from exc + + # ------------------------------------------------------------------ + + def get_one(self, reference: str) -> DeviceAccess: + """ + Resolve a reference and ensure it corresponds to a single DeviceAccess. + + Raises + ------ + PyAMLException + If the reference does not exist or is multi-device. + """ + value = self.get(reference) + + if isinstance(value, list): + raise PyAMLException( + f"Catalog reference '{reference}' is multi-device; use get_many()." + ) + + return value + + # ------------------------------------------------------------------ + + def get_many(self, reference: str) -> list[DeviceAccess]: + """ + Resolve a reference and ensure it corresponds to multiple DeviceAccess. + + Returns + ------- + list[DeviceAccess] + + Raises + ------ + PyAMLException + If the reference does not exist or is single-device. + """ + value = self.get(reference) + + if not isinstance(value, list): + raise PyAMLException( + f"Catalog reference '{reference}' is single-device; use get_one()." + ) + + return value + + # ------------------------------------------------------------------ + + def find(self, pattern: str) -> dict[str, CatalogValue]: + """ + Resolve references matching a regular expression. + + Returns + ------- + dict[str, DeviceAccess | list[DeviceAccess]] + Mapping {reference -> value}. + """ + regex: Pattern[str] = re.compile(pattern) + return {k: v for k, v in self._entries.items() if regex.search(k)} + + # ------------------------------------------------------------------ + + def keys(self) -> list[str]: + """Return all catalog reference keys.""" + return list(self._entries.keys()) diff --git a/pyaml/configuration/catalog_entry.py b/pyaml/configuration/catalog_entry.py new file mode 100644 index 00000000..079360e5 --- /dev/null +++ b/pyaml/configuration/catalog_entry.py @@ -0,0 +1,74 @@ +from typing import Union + +from pydantic import BaseModel, ConfigDict, model_validator + +from pyaml.control.deviceaccess import DeviceAccess + +# Define the main class name for this module +PYAMLCLASS = "CatalogEntry" + + +class ConfigModel(BaseModel): + """ + Configuration model for a single catalog entry. + + Exactly one of 'device' or 'devices' must be provided. + + Attributes + ---------- + reference : str + Unique key used to identify the value in the catalog. + device : dict | None + Factory configuration dict for a single DeviceAccess. + devices : list[DeviceAccess] | None + Factory configuration dicts for multiple DeviceAccess objects. + """ + + model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") + + reference: str + device: DeviceAccess = None + devices: list[DeviceAccess] = None + + @model_validator(mode="after") + def _validate_one_of(self) -> "ConfigModel": + """ + Ensure exactly one of (device, devices) is provided and properly shaped. + """ + has_device = self.device is not None + has_devices = self.devices is not None and len(self.devices) > 0 + + # both True or both False -> invalid + if has_device == has_devices: + raise ValueError( + "Catalog entry must define exactly one of 'device' or 'devices'." + ) + + if has_device and not isinstance(self.device, DeviceAccess): + raise ValueError("'device' must be a DeviceAccess.") + + if has_devices: + if not isinstance(self.devices, list) or len(self.devices) == 0: + raise ValueError("'devices' must be a non-empty list.") + for i, d in enumerate(self.devices): + if not isinstance(d, DeviceAccess): + raise ValueError(f"'devices[{i}]' must be a DeviceAccess.") + + return self + + +CatalogValue = Union[DeviceAccess, list[DeviceAccess]] + + +class CatalogEntry: + def __init__(self, cfg: ConfigModel): + self._cfg: ConfigModel = cfg + self._value: CatalogValue = ( + cfg.device if cfg.device is not None else cfg.devices + ) + + def get_reference(self) -> str: + return self._cfg.reference + + def get_value(self) -> CatalogValue: + return self._value diff --git a/pyaml/control/controlsystem.py b/pyaml/control/controlsystem.py index c0c334c0..aabf9d73 100644 --- a/pyaml/control/controlsystem.py +++ b/pyaml/control/controlsystem.py @@ -8,6 +8,7 @@ from ..common.element import Element from ..common.element_holder import ElementHolder from ..common.exception import PyAMLException +from ..configuration.catalog import Catalog from ..configuration.factory import Factory from ..control.abstract_impl import ( CSBPMArrayMapper, @@ -47,6 +48,10 @@ class ControlSystem(ElementHolder, metaclass=ABCMeta): def __init__(self): ElementHolder.__init__(self) + self._catalog: Catalog | None = None + + def set_catalog(self, catalog: Catalog): + self._catalog = catalog @abstractmethod def attach(self, dev: list[DeviceAccess]) -> list[DeviceAccess]: diff --git a/tests/config/bpms.yaml b/tests/config/bpms.yaml index e0efafec..69e4b19e 100644 --- a/tests/config/bpms.yaml +++ b/tests/config/bpms.yaml @@ -85,3 +85,30 @@ devices: - [A0, SH1A-C01-V] - [A1, SH1A-C01-SQ] model: sr/magnet_models/SH1AC01.yaml +control_system_catalog: + type: pyaml.configuration.catalog + refs: + - type: pyaml.configuration.catalog_entry + reference: BPM_C01-02 + devices: + - type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-02/SA_HPosition + unit: mm + - type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-02/SA_HPosition + unit: mm + - type: pyaml.configuration.catalog_entry + reference: BPM_C01-03 + devices: + - type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-03/SA_HPosition + unit: mm + - type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-03/SA_VPosition + unit: mm + - type: pyaml.configuration.catalog_entry + reference: BPM_C01-04 + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-04/Position + unit: mm From 53689cebbdbd8e4bf48de56b61373255334b7198 Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Thu, 12 Feb 2026 11:30:19 +0100 Subject: [PATCH 02/14] Full example with BPMs --- pyaml/bpm/bpm_model.py | 9 ++-- pyaml/bpm/bpm_simple_model.py | 28 +++++++------ pyaml/bpm/bpm_tiltoffset_model.py | 56 +++++++++---------------- pyaml/common/element_holder.py | 2 +- pyaml/configuration/catalog.py | 18 ++++++++ pyaml/control/controlsystem.py | 10 ++--- tests/config/bpms.yaml | 70 +++++++++++-------------------- 7 files changed, 90 insertions(+), 103 deletions(-) diff --git a/pyaml/bpm/bpm_model.py b/pyaml/bpm/bpm_model.py index e00c2aa3..be410c35 100644 --- a/pyaml/bpm/bpm_model.py +++ b/pyaml/bpm/bpm_model.py @@ -3,6 +3,7 @@ import numpy as np from numpy.typing import NDArray +from ..configuration.catalog import Catalog from ..control.deviceaccess import DeviceAccess @@ -13,7 +14,7 @@ class BPMModel(metaclass=ABCMeta): """ @abstractmethod - def get_pos_devices(self) -> list[DeviceAccess | None]: + def get_pos_devices(self, name: str, catalog: Catalog) -> list[DeviceAccess | None]: """ Get device handles used for position reading @@ -25,7 +26,7 @@ def get_pos_devices(self) -> list[DeviceAccess | None]: pass @abstractmethod - def get_tilt_device(self) -> DeviceAccess | None: + def get_tilt_device(self, name: str, catalog: Catalog) -> DeviceAccess | None: """ Get device handle used for tilt access @@ -37,7 +38,9 @@ def get_tilt_device(self) -> DeviceAccess | None: pass @abstractmethod - def get_offset_devices(self) -> list[DeviceAccess | None]: + def get_offset_devices( + self, name: str, catalog: Catalog + ) -> list[DeviceAccess | None]: """ Get device handles used for offset access diff --git a/pyaml/bpm/bpm_simple_model.py b/pyaml/bpm/bpm_simple_model.py index 582a6025..78eb469a 100644 --- a/pyaml/bpm/bpm_simple_model.py +++ b/pyaml/bpm/bpm_simple_model.py @@ -5,6 +5,7 @@ from pyaml.bpm.bpm_model import BPMModel from ..common.element import __pyaml_repr__ +from ..configuration.catalog import Catalog from ..control.deviceaccess import DeviceAccess # Define the main class name for this module @@ -31,8 +32,6 @@ class ConfigModel(BaseModel): model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") - x_pos: DeviceAccess | None - y_pos: DeviceAccess | None x_pos_index: int | None = None y_pos_index: int | None = None @@ -45,39 +44,44 @@ class BPMSimpleModel(BPMModel): def __init__(self, cfg: ConfigModel): self._cfg = cfg - self.__x_pos = cfg.x_pos - self.__y_pos = cfg.y_pos - def get_pos_devices(self) -> list[DeviceAccess | None]: + def get_pos_devices(self, name: str, catalog: Catalog) -> list[DeviceAccess | None]: """ Get device handles used for position reading Returns ------- list[DeviceAccess] - Array of DeviceAcess + Array of DeviceAccess """ - return [self.__x_pos, self.__y_pos] - - def get_tilt_device(self) -> DeviceAccess | None: + if self.is_pos_indexed(): + dev = catalog.get_one(name) + pos_devices = [dev, dev] + else: + pos_devices = catalog.get_many(name)[:2] + return pos_devices + + def get_tilt_device(self, name: str, catalog: Catalog) -> DeviceAccess | None: """ Get device handle used for tilt access Returns ------- list[DeviceAccess] - Array of DeviceAcess + Array of DeviceAccess """ return None - def get_offset_devices(self) -> list[DeviceAccess | None]: + def get_offset_devices( + self, name: str, catalog: Catalog + ) -> list[DeviceAccess | None]: """ Get device handles used for offset access Returns ------- list[DeviceAccess] - Array of DeviceAcess + Array of DeviceAccess """ return [None, None] diff --git a/pyaml/bpm/bpm_tiltoffset_model.py b/pyaml/bpm/bpm_tiltoffset_model.py index 6bccbd8c..ce0c0582 100644 --- a/pyaml/bpm/bpm_tiltoffset_model.py +++ b/pyaml/bpm/bpm_tiltoffset_model.py @@ -6,6 +6,7 @@ from pyaml.bpm.bpm_simple_model import BPMSimpleModel from ..common.element import __pyaml_repr__ +from ..configuration.catalog import Catalog from ..control.deviceaccess import DeviceAccess # Define the main class name for this module @@ -20,27 +21,18 @@ class ConfigModel(BaseModel): Parameters ---------- - x_pos : DeviceAccess, optional - Horizontal position device - y_pos : DeviceAccess, optional - Vertical position device - x_offset : DeviceAccess, optional - Horizontal BPM offset device - y_offset : DeviceAccess, optional - Vertical BPM offset device - tilt : DeviceAccess, optional - BPM tilt device + x_pos_index : int, optional + Index in the array when specified, otherwise scalar + value is expected + y_pos_index : int, optional + Index in the array when specified, otherwise scalar + value is expected """ model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") - x_pos: DeviceAccess | None - y_pos: DeviceAccess | None x_pos_index: int | None = None y_pos_index: int | None = None - x_offset: DeviceAccess | None - y_offset: DeviceAccess | None - tilt: DeviceAccess | None class BPMTiltOffsetModel(BPMSimpleModel): @@ -51,44 +43,34 @@ class BPMTiltOffsetModel(BPMSimpleModel): def __init__(self, cfg: ConfigModel): super().__init__(cfg) - self.__x_pos = cfg.x_pos - self.__y_pos = cfg.y_pos - self.__x_offset = cfg.x_offset - self.__y_offset = cfg.y_offset - self.__tilt = cfg.tilt - def get_pos_devices(self) -> list[DeviceAccess | None]: - """ - Get device handles used for position reading - - Returns - ------- - list[DeviceAccess] - Array of DeviceAcess - """ - return [self.__x_pos, self.__y_pos] - - def get_tilt_device(self) -> DeviceAccess | None: + def get_tilt_device(self, name: str, catalog: Catalog) -> DeviceAccess | None: """ Get device handle used for tilt access Returns ------- DeviceAccess - DeviceAcess + The DeviceAccess for tilt """ - return self.__tilt + if catalog.has_reference(name + "/tilt"): + return catalog.get_one(name + "/tilt") + return None - def get_offset_devices(self) -> list[DeviceAccess | None]: + def get_offset_devices( + self, name: str, catalog: Catalog + ) -> list[DeviceAccess | None]: """ Get device handles used for offset access Returns ------- list[DeviceAccess] - Array of DeviceAcess + Array of 2 DeviceAccess: [x_offset, y_offset] """ - return [self.__x_offset, self.__y_offset] + if catalog.has_reference(name + "/offsets"): + return catalog.get_many(name + "/offsets")[:2] + return [None, None] def __repr__(self): return __pyaml_repr__(self) diff --git a/pyaml/common/element_holder.py b/pyaml/common/element_holder.py index 49a5811d..69d354f1 100644 --- a/pyaml/common/element_holder.py +++ b/pyaml/common/element_holder.py @@ -190,7 +190,7 @@ def fill_bpm_array(self, arrayName: str, elementNames: list[str]): arrayName, elementNames, self.get_bpm, BPMArray, self.__BPM_ARRAYS ) - def get_bpm(self, name: str) -> Element: + def get_bpm(self, name: str) -> BPM: return self.__get("BPM", name, self.__BPMS) def add_bpm(self, bpm: BPM): diff --git a/pyaml/configuration/catalog.py b/pyaml/configuration/catalog.py index 13706261..46c451e5 100644 --- a/pyaml/configuration/catalog.py +++ b/pyaml/configuration/catalog.py @@ -153,3 +153,21 @@ def find(self, pattern: str) -> dict[str, CatalogValue]: def keys(self) -> list[str]: """Return all catalog reference keys.""" return list(self._entries.keys()) + + # ------------------------------------------------------------------ + + def has_reference(self, reference: str) -> bool: + """ + Return True if the reference exists in the catalog. + + Parameters + ---------- + reference : str + Catalog reference key. + + Returns + ------- + bool + True if the reference exists, False otherwise. + """ + return reference in self._entries diff --git a/pyaml/control/controlsystem.py b/pyaml/control/controlsystem.py index aabf9d73..b9401395 100644 --- a/pyaml/control/controlsystem.py +++ b/pyaml/control/controlsystem.py @@ -253,11 +253,11 @@ def fill_device(self, elements: list[Element]): self.add_magnet(m) elif isinstance(e, BPM): - hDev = e.model.get_pos_devices()[0] - vDev = e.model.get_pos_devices()[1] - tiltDev = e.model.get_tilt_device() - hOffsetDev = e.model.get_offset_devices()[0] - vOffsetDev = e.model.get_offset_devices()[1] + hDev = e.model.get_pos_devices(e.get_name(), self._catalog)[0] + vDev = e.model.get_pos_devices(e.get_name(), self._catalog)[1] + tiltDev = e.model.get_tilt_device(e.get_name(), self._catalog) + hOffsetDev = e.model.get_offset_devices(e.get_name(), self._catalog)[0] + vOffsetDev = e.model.get_offset_devices(e.get_name(), self._catalog)[1] ahDev = self.attach_indexed(hDev, e.model.x_pos_index()) avDev = self.attach_indexed(vDev, e.model.y_pos_index()) atiltDev = self.attach_indexed(tiltDev, e.model.tilt_index()) diff --git a/tests/config/bpms.yaml b/tests/config/bpms.yaml index 69e4b19e..b6df0e84 100644 --- a/tests/config/bpms.yaml +++ b/tests/config/bpms.yaml @@ -16,64 +16,20 @@ devices: name: BPM_C01-01 model: type: pyaml.bpm.bpm_tiltoffset_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-01/SA_HPosition - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-01/SA_VPosition - unit: mm - x_offset: - type: tango.pyaml.attribute - attribute: srdiag/bpm/c01-01/HOffset - unit: mm - y_offset: - type: tango.pyaml.attribute - attribute: srdiag/bpm/c01-01/VOffset - unit: mm - tilt: - type: tango.pyaml.attribute - attribute: srdiag/bpm/c01-01/Tilt_Angle - unit: rad - 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: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-02/SA_VPosition - unit: mm - 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: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-03/SA_VPosition - unit: mm - type: pyaml.bpm.bpm name: BPM_C01-04 model: type: pyaml.bpm.bpm_simple_model x_pos_index: 0 y_pos_index: 1 - x_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-04/Position - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-04/Position - unit: mm - type: pyaml.magnet.cfm_magnet name: SH1A-C01 #Name of the element in the lattice model mapping: @@ -88,6 +44,30 @@ devices: control_system_catalog: type: pyaml.configuration.catalog refs: + - type: pyaml.configuration.catalog_entry + reference: BPM_C01-01 + devices: + - type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-01/SA_HPosition + unit: mm + - type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-01/SA_VPosition + unit: mm + - type: pyaml.configuration.catalog_entry + reference: BPM_C01-01/offsets + devices: + - type: tango.pyaml.attribute + attribute: srdiag/bpm/c01-01/HOffset + unit: mm + - type: tango.pyaml.attribute + attribute: srdiag/bpm/c01-01/VOffset + unit: mm + - type: pyaml.configuration.catalog_entry + reference: BPM_C01-01/tilt + device: + type: tango.pyaml.attribute + attribute: srdiag/bpm/c01-01/Tilt_Angle + unit: rad - type: pyaml.configuration.catalog_entry reference: BPM_C01-02 devices: @@ -95,7 +75,7 @@ control_system_catalog: attribute: srdiag/bpm/c01-02/SA_HPosition unit: mm - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-02/SA_HPosition + attribute: srdiag/bpm/c01-02/SA_VPosition unit: mm - type: pyaml.configuration.catalog_entry reference: BPM_C01-03 From f1acf5f4993d9fb31cccc5f213fa2b12ece30340 Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Thu, 12 Feb 2026 13:44:21 +0100 Subject: [PATCH 03/14] Adding the possibility to customize the device suffixes for devices names. --- pyaml/bpm/bpm_simple_model.py | 10 +++- pyaml/bpm/bpm_tiltoffset_model.py | 17 +++++-- tests/config/bpms.yaml | 78 ++++++++++++++++++------------- 3 files changed, 66 insertions(+), 39 deletions(-) diff --git a/pyaml/bpm/bpm_simple_model.py b/pyaml/bpm/bpm_simple_model.py index 78eb469a..85229dbf 100644 --- a/pyaml/bpm/bpm_simple_model.py +++ b/pyaml/bpm/bpm_simple_model.py @@ -34,6 +34,9 @@ class ConfigModel(BaseModel): x_pos_index: int | None = None y_pos_index: int | None = None + x_pos: str = "x_pos" + y_pos: str = "y_pos" + positions: str = "positions" class BPMSimpleModel(BPMModel): @@ -55,10 +58,13 @@ def get_pos_devices(self, name: str, catalog: Catalog) -> list[DeviceAccess | No Array of DeviceAccess """ if self.is_pos_indexed(): - dev = catalog.get_one(name) + ref = name + "/" + self._cfg.positions + dev = catalog.get_one(ref) pos_devices = [dev, dev] else: - pos_devices = catalog.get_many(name)[:2] + x_ref = name + "/" + self._cfg.x_pos + y_ref = name + "/" + self._cfg.y_pos + pos_devices = [catalog.get_one(x_ref), catalog.get_one(y_ref)] return pos_devices def get_tilt_device(self, name: str, catalog: Catalog) -> DeviceAccess | None: diff --git a/pyaml/bpm/bpm_tiltoffset_model.py b/pyaml/bpm/bpm_tiltoffset_model.py index ce0c0582..25d14f78 100644 --- a/pyaml/bpm/bpm_tiltoffset_model.py +++ b/pyaml/bpm/bpm_tiltoffset_model.py @@ -33,6 +33,12 @@ class ConfigModel(BaseModel): x_pos_index: int | None = None y_pos_index: int | None = None + x_pos: str = "x_pos" + y_pos: str = "y_pos" + positions: str = "positions" + tilt: str = "tilt" + x_offset: str = "x_offset" + y_offset: str = "y_offset" class BPMTiltOffsetModel(BPMSimpleModel): @@ -53,8 +59,9 @@ def get_tilt_device(self, name: str, catalog: Catalog) -> DeviceAccess | None: DeviceAccess The DeviceAccess for tilt """ - if catalog.has_reference(name + "/tilt"): - return catalog.get_one(name + "/tilt") + ref = name + "/" + self._cfg.tilt + if catalog.has_reference(ref): + return catalog.get_one(ref) return None def get_offset_devices( @@ -68,8 +75,10 @@ def get_offset_devices( list[DeviceAccess] Array of 2 DeviceAccess: [x_offset, y_offset] """ - if catalog.has_reference(name + "/offsets"): - return catalog.get_many(name + "/offsets")[:2] + x_ref = name + "/" + self._cfg.x_offset + y_ref = name + "/" + self._cfg.y_offset + if catalog.has_reference(x_ref) and catalog.has_reference(y_ref): + return [catalog.get_one(x_ref), catalog.get_one(y_ref)] return [None, None] def __repr__(self): diff --git a/tests/config/bpms.yaml b/tests/config/bpms.yaml index b6df0e84..7f2ae137 100644 --- a/tests/config/bpms.yaml +++ b/tests/config/bpms.yaml @@ -45,23 +45,29 @@ control_system_catalog: type: pyaml.configuration.catalog refs: - type: pyaml.configuration.catalog_entry - reference: BPM_C01-01 - devices: - - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-01/SA_HPosition - unit: mm - - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-01/SA_VPosition - unit: mm + reference: BPM_C01-01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-01/SA_HPosition + unit: mm + - type: pyaml.configuration.catalog_entry + reference: BPM_C01-01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-01/SA_VPosition + unit: mm - type: pyaml.configuration.catalog_entry - reference: BPM_C01-01/offsets - devices: - - type: tango.pyaml.attribute - attribute: srdiag/bpm/c01-01/HOffset - unit: mm - - type: tango.pyaml.attribute - attribute: srdiag/bpm/c01-01/VOffset - unit: mm + reference: BPM_C01-01/x_offset + device: + type: tango.pyaml.attribute + attribute: srdiag/bpm/c01-01/HOffset + unit: mm + - type: pyaml.configuration.catalog_entry + reference: BPM_C01-01/y_offset + device: + type: tango.pyaml.attribute + attribute: srdiag/bpm/c01-01/VOffset + unit: mm - type: pyaml.configuration.catalog_entry reference: BPM_C01-01/tilt device: @@ -69,25 +75,31 @@ control_system_catalog: attribute: srdiag/bpm/c01-01/Tilt_Angle unit: rad - type: pyaml.configuration.catalog_entry - reference: BPM_C01-02 - devices: - - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-02/SA_HPosition - unit: mm - - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-02/SA_VPosition - unit: mm + reference: BPM_C01-02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-02/SA_HPosition + unit: mm + - type: pyaml.configuration.catalog_entry + reference: BPM_C01-02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-02/SA_VPosition + unit: mm - type: pyaml.configuration.catalog_entry - reference: BPM_C01-03 - devices: - - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-03/SA_HPosition - unit: mm - - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-03/SA_VPosition - unit: mm + reference: BPM_C01-03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-03/SA_HPosition + unit: mm + - type: pyaml.configuration.catalog_entry + reference: BPM_C01-03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-03/SA_VPosition + unit: mm - type: pyaml.configuration.catalog_entry - reference: BPM_C01-04 + reference: BPM_C01-04/positions device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-04/Position From c292bb48e1117f64ec6c1f851d85a48a9083beb0 Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Thu, 12 Feb 2026 15:36:23 +0100 Subject: [PATCH 04/14] No default names for BPM devices, possibilities to have several named catalogs. --- pyaml/accelerator.py | 15 ++- pyaml/bpm/bpm_simple_model.py | 6 +- pyaml/bpm/bpm_tiltoffset_model.py | 12 +-- pyaml/configuration/catalog.py | 3 + tests/config/bad_conf_duplicate_2.yaml | 70 ++++++++----- tests/config/bad_conf_duplicate_3.yaml | 80 ++++++++------ tests/config/bpms.yaml | 139 +++++++++++++------------ tests/config/sr.yaml | 48 ++++++--- tests/test_errors.py | 2 +- 9 files changed, 225 insertions(+), 150 deletions(-) diff --git a/pyaml/accelerator.py b/pyaml/accelerator.py index 30db7756..e99f27b6 100644 --- a/pyaml/accelerator.py +++ b/pyaml/accelerator.py @@ -60,7 +60,7 @@ class ConfigModel(BaseModel): description: str | None = None arrays: list[ArrayConfig] = Field(default=None, repr=False) devices: list[Element] = Field(repr=False) - control_system_catalog: Catalog = Field(repr=False) + control_system_catalogs: list[Catalog] = None class Accelerator(object): @@ -71,13 +71,20 @@ def __init__(self, cfg: ConfigModel): __design = None __live = None + # TODO Manage mapping between catalogs and control systems + catalog = ( + cfg.control_system_catalogs[0] + if cfg.control_system_catalogs is not None + and len(cfg.control_system_catalogs) > 0 + else None + ) if cfg.controls is not None: for c in cfg.controls: - c.set_catalog(cfg.control_system_catalog) + c.set_catalog(catalog) if c.name() == "live": self.__live = c else: - # Add as dynacmic attribute + # Add as dynamic attribute setattr(self, c.name(), c) c.fill_device(cfg.devices) @@ -86,7 +93,7 @@ def __init__(self, cfg: ConfigModel): if s.name() == "design": self.__design = s else: - # Add as dynacmic attribute + # Add as dynamic attribute setattr(self, s.name(), s) s.fill_device(cfg.devices) diff --git a/pyaml/bpm/bpm_simple_model.py b/pyaml/bpm/bpm_simple_model.py index 85229dbf..d96ab454 100644 --- a/pyaml/bpm/bpm_simple_model.py +++ b/pyaml/bpm/bpm_simple_model.py @@ -34,9 +34,9 @@ class ConfigModel(BaseModel): x_pos_index: int | None = None y_pos_index: int | None = None - x_pos: str = "x_pos" - y_pos: str = "y_pos" - positions: str = "positions" + x_pos: str = None + y_pos: str = None + positions: str = None class BPMSimpleModel(BPMModel): diff --git a/pyaml/bpm/bpm_tiltoffset_model.py b/pyaml/bpm/bpm_tiltoffset_model.py index 25d14f78..e0f4c86d 100644 --- a/pyaml/bpm/bpm_tiltoffset_model.py +++ b/pyaml/bpm/bpm_tiltoffset_model.py @@ -33,12 +33,12 @@ class ConfigModel(BaseModel): x_pos_index: int | None = None y_pos_index: int | None = None - x_pos: str = "x_pos" - y_pos: str = "y_pos" - positions: str = "positions" - tilt: str = "tilt" - x_offset: str = "x_offset" - y_offset: str = "y_offset" + x_pos: str = None + y_pos: str = None + positions: str = None + tilt: str = None + x_offset: str = None + y_offset: str = None class BPMTiltOffsetModel(BPMSimpleModel): diff --git a/pyaml/configuration/catalog.py b/pyaml/configuration/catalog.py index 46c451e5..7e26d857 100644 --- a/pyaml/configuration/catalog.py +++ b/pyaml/configuration/catalog.py @@ -18,12 +18,15 @@ class ConfigModel(BaseModel): Attributes ---------- + name: str + Name of the configuration to be reference in the control system refs : list[CatalogEntryConfigModel] List of catalog entries. """ model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") + name: str refs: list[CatalogEntry] @model_validator(mode="after") diff --git a/tests/config/bad_conf_duplicate_2.yaml b/tests/config/bad_conf_duplicate_2.yaml index 7282bdaf..4195e548 100644 --- a/tests/config/bad_conf_duplicate_2.yaml +++ b/tests/config/bad_conf_duplicate_2.yaml @@ -24,35 +24,57 @@ devices: 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 + x_pos: x_pos + y_pos: y_pos - 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 + x_pos: x_pos + y_pos: y_pos - 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 + x_pos: x_pos + y_pos: y_pos +control_system_catalogs: + - type: pyaml.configuration.catalog + name: live_catalog + refs: + - type: pyaml.configuration.catalog_entry + reference: BPM_C04-04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-01/SA_HPosition + unit: mm + - type: pyaml.configuration.catalog_entry + reference: BPM_C04-04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-01/SA_VPosition + unit: mm + - type: pyaml.configuration.catalog_entry + reference: BPM_C04-05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-02/SA_HPosition + unit: mm + - type: pyaml.configuration.catalog_entry + reference: BPM_C04-05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-02/SA_VPosition + unit: mm + - type: pyaml.configuration.catalog_entry + reference: BPM_C04-06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-02/SA_HPosition + unit: mm + - type: pyaml.configuration.catalog_entry + reference: BPM_C04-06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-02/SA_VPosition + unit: mm diff --git a/tests/config/bad_conf_duplicate_3.yaml b/tests/config/bad_conf_duplicate_3.yaml index 6e9c7b92..8ebeadf6 100644 --- a/tests/config/bad_conf_duplicate_3.yaml +++ b/tests/config/bad_conf_duplicate_3.yaml @@ -23,47 +23,63 @@ devices: 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 + x_pos: x_pos + y_pos: y_pos - 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 + x_pos: x_pos + y_pos: y_pos - 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 + x_pos: x_pos + y_pos: y_pos - type: pyaml.bpm.bpm # duplicate device 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 + x_pos: x_pos + y_pos: y_pos +control_system_catalogs: + - type: pyaml.configuration.catalog + name: live_catalog + refs: + - type: pyaml.configuration.catalog_entry + reference: BPM_C04-04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-01/SA_HPosition + unit: mm + - type: pyaml.configuration.catalog_entry + reference: BPM_C04-04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-01/SA_VPosition + unit: mm + - type: pyaml.configuration.catalog_entry + reference: BPM_C04-05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-02/SA_HPosition + unit: mm + - type: pyaml.configuration.catalog_entry + reference: BPM_C04-05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-02/SA_VPosition + unit: mm + - type: pyaml.configuration.catalog_entry + reference: BPM_C04-06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-02/SA_HPosition + unit: mm + - type: pyaml.configuration.catalog_entry + reference: BPM_C04-06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-02/SA_VPosition + unit: mm diff --git a/tests/config/bpms.yaml b/tests/config/bpms.yaml index 7f2ae137..d15d3d4f 100644 --- a/tests/config/bpms.yaml +++ b/tests/config/bpms.yaml @@ -16,91 +16,102 @@ devices: name: BPM_C01-01 model: type: pyaml.bpm.bpm_tiltoffset_model + x_pos: x_pos + y_pos: y_pos + tilt: tilt + x_offset: x_offset + y_offset: y_offset - type: pyaml.bpm.bpm name: BPM_C01-02 model: type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos - type: pyaml.bpm.bpm name: BPM_C01-03 model: type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos - type: pyaml.bpm.bpm name: BPM_C01-04 model: type: pyaml.bpm.bpm_simple_model x_pos_index: 0 y_pos_index: 1 + positions: positions - type: pyaml.magnet.cfm_magnet name: SH1A-C01 #Name of the element in the lattice model mapping: # Multipole mapping for usage in families, in this example SH1-C01A-H is not # a lattice element present in the model, it is just a name to use in - # PyAML families. When this 'virutal' element is set, it then applies + # PyAML families. When this 'virtual' element is set, it then applies # the corresponding multipole on the parent element. - [B0, SH1A-C01-H] - [A0, SH1A-C01-V] - [A1, SH1A-C01-SQ] model: sr/magnet_models/SH1AC01.yaml -control_system_catalog: - type: pyaml.configuration.catalog - refs: - - type: pyaml.configuration.catalog_entry - reference: BPM_C01-01/x_pos - device: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-01/SA_HPosition - unit: mm - - type: pyaml.configuration.catalog_entry - reference: BPM_C01-01/y_pos - device: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-01/SA_VPosition - unit: mm - - type: pyaml.configuration.catalog_entry - reference: BPM_C01-01/x_offset - device: - type: tango.pyaml.attribute - attribute: srdiag/bpm/c01-01/HOffset - unit: mm - - type: pyaml.configuration.catalog_entry - reference: BPM_C01-01/y_offset - device: - type: tango.pyaml.attribute - attribute: srdiag/bpm/c01-01/VOffset - unit: mm - - type: pyaml.configuration.catalog_entry - reference: BPM_C01-01/tilt - device: - type: tango.pyaml.attribute - attribute: srdiag/bpm/c01-01/Tilt_Angle - unit: rad - - type: pyaml.configuration.catalog_entry - reference: BPM_C01-02/x_pos - device: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-02/SA_HPosition - unit: mm - - type: pyaml.configuration.catalog_entry - reference: BPM_C01-02/y_pos - device: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-02/SA_VPosition - unit: mm - - type: pyaml.configuration.catalog_entry - reference: BPM_C01-03/x_pos - device: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-03/SA_HPosition - unit: mm - - type: pyaml.configuration.catalog_entry - reference: BPM_C01-03/y_pos - device: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-03/SA_VPosition - unit: mm - - type: pyaml.configuration.catalog_entry - reference: BPM_C01-04/positions - device: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-04/Position - unit: mm +control_system_catalogs: + - type: pyaml.configuration.catalog + name: live_catalog + refs: + - type: pyaml.configuration.catalog_entry + reference: BPM_C01-01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-01/SA_HPosition + unit: mm + - type: pyaml.configuration.catalog_entry + reference: BPM_C01-01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-01/SA_VPosition + unit: mm + - type: pyaml.configuration.catalog_entry + reference: BPM_C01-01/x_offset + device: + type: tango.pyaml.attribute + attribute: srdiag/bpm/c01-01/HOffset + unit: mm + - type: pyaml.configuration.catalog_entry + reference: BPM_C01-01/y_offset + device: + type: tango.pyaml.attribute + attribute: srdiag/bpm/c01-01/VOffset + unit: mm + - type: pyaml.configuration.catalog_entry + reference: BPM_C01-01/tilt + device: + type: tango.pyaml.attribute + attribute: srdiag/bpm/c01-01/Tilt_Angle + unit: rad + - type: pyaml.configuration.catalog_entry + reference: BPM_C01-02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-02/SA_HPosition + unit: mm + - type: pyaml.configuration.catalog_entry + reference: BPM_C01-02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-02/SA_VPosition + unit: mm + - type: pyaml.configuration.catalog_entry + reference: BPM_C01-03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-03/SA_HPosition + unit: mm + - type: pyaml.configuration.catalog_entry + reference: BPM_C01-03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-03/SA_VPosition + unit: mm + - type: pyaml.configuration.catalog_entry + reference: BPM_C01-04/positions + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-04/Position + unit: mm diff --git a/tests/config/sr.yaml b/tests/config/sr.yaml index 92d4a84c..63311dab 100644 --- a/tests/config/sr.yaml +++ b/tests/config/sr.yaml @@ -54,23 +54,39 @@ devices: 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 + x_pos: x_pos + y_pos: y_pos - 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 + x_pos: x_pos + y_pos: y_pos +control_system_catalogs: + - type: pyaml.configuration.catalog + name: live_catalog + refs: + - type: pyaml.configuration.catalog_entry + reference: BPM_C04-01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-01/SA_HPosition + unit: mm + - type: pyaml.configuration.catalog_entry + reference: BPM_C04-01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-01/SA_VPosition + unit: mm + - type: pyaml.configuration.catalog_entry + reference: BPM_C04-02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-02/SA_HPosition + unit: mm + - type: pyaml.configuration.catalog_entry + reference: BPM_C04-02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-02/SA_VPosition + unit: mm diff --git a/tests/test_errors.py b/tests/test_errors.py index a71d28b4..535976f2 100644 --- a/tests/test_errors.py +++ b/tests/test_errors.py @@ -22,7 +22,7 @@ def test_tune(install_test_package): with pytest.raises(PyAMLConfigException) as exc: ml: Accelerator = Accelerator.load("tests/config/bad_conf_duplicate_3.yaml") assert "element BPM_C04-06 already defined" in str(exc) - assert "line 58, column 3" in str(exc) + assert "line 40, column 3" in str(exc) sr: Accelerator = Accelerator.load("tests/config/EBSTune.yaml") m1 = sr.live.get_magnet("QF1E-C04") From 58cd2e304cc16885ab533d79c4e3dedc8034cb63 Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Thu, 12 Feb 2026 16:54:43 +0100 Subject: [PATCH 05/14] Adding a get_name method to the catalog for future use. Tests adaptation. --- pyaml/accelerator.py | 4 + pyaml/configuration/catalog.py | 6 + pyaml/control/controlsystem.py | 4 +- tests/config/EBSOrbit.yaml | 5756 +++++++++++++++++++++----------- 4 files changed, 3852 insertions(+), 1918 deletions(-) diff --git a/pyaml/accelerator.py b/pyaml/accelerator.py index e99f27b6..f93434be 100644 --- a/pyaml/accelerator.py +++ b/pyaml/accelerator.py @@ -70,7 +70,11 @@ def __init__(self, cfg: ConfigModel): self._cfg = cfg __design = None __live = None + self.__catalogs: dict[str, Catalog] = {} + if cfg.control_system_catalogs is not None: + for catalog in cfg.control_system_catalogs: + self.__catalogs[catalog.get_name()] = catalog # TODO Manage mapping between catalogs and control systems catalog = ( cfg.control_system_catalogs[0] diff --git a/pyaml/configuration/catalog.py b/pyaml/configuration/catalog.py index 7e26d857..f28807f7 100644 --- a/pyaml/configuration/catalog.py +++ b/pyaml/configuration/catalog.py @@ -54,12 +54,18 @@ class Catalog: """ def __init__(self, cfg: ConfigModel): + self._cfg = cfg self._entries: dict[str, CatalogValue] = {} for ref in cfg.refs: self.add(ref.get_reference(), ref.get_value()) # ------------------------------------------------------------------ + def get_name(self) -> str: + return self._cfg.name + + # ------------------------------------------------------------------ + def add(self, reference: str, value: CatalogValue): """ Register a reference in the catalog. diff --git a/pyaml/control/controlsystem.py b/pyaml/control/controlsystem.py index b9401395..55d29d48 100644 --- a/pyaml/control/controlsystem.py +++ b/pyaml/control/controlsystem.py @@ -50,7 +50,7 @@ def __init__(self): ElementHolder.__init__(self) self._catalog: Catalog | None = None - def set_catalog(self, catalog: Catalog): + def set_catalog(self, catalog: Catalog | None): self._catalog = catalog @abstractmethod @@ -123,7 +123,7 @@ def create_bpm_aggregators(self, bpms: list[BPM]) -> list[ScalarAggregator]: aggh = self.create_scalar_aggregator() aggv = self.create_scalar_aggregator() for b in bpms: - devs = self.attach(b.model.get_pos_devices()) + devs = self.attach(b.model.get_pos_devices(b.get_name(), self._catalog)) agg.add_devices(devs) aggh.add_devices(devs[0]) aggv.add_devices(devs[1]) diff --git a/tests/config/EBSOrbit.yaml b/tests/config/EBSOrbit.yaml index ccc6ed36..f6d7666c 100644 --- a/tests/config/EBSOrbit.yaml +++ b/tests/config/EBSOrbit.yaml @@ -8859,3839 +8859,5763 @@ devices: name: BPM_C04-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C04-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C04-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C04-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C04-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C04-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C04-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C04-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C04-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C04-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C05-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C05-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C05-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C05-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C05-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C05-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C05-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C05-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C05-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C05-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C06-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C06-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C06-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C06-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C06-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C06-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C06-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C06-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C06-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C06-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C07-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C07-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C07-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C07-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C07-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C07-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C07-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C07-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C07-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C07-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C08-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C08-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C08-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C08-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C08-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C08-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C08-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C08-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C08-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C08-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C09-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C09-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C09-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C09-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C09-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C09-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C09-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C09-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C09-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C09-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C10-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C10-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C10-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C10-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C10-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C10-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C10-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C10-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C10-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C10-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C11-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C11-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C11-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C11-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C11-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C11-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C11-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C11-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C11-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C11-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C12-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C12-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C12-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C12-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C12-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C12-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C12-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C12-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C12-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C12-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C13-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C13-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C13-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C13-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C13-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C13-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C13-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C13-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C13-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C13-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C14-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C14-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C14-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C14-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C14-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C14-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C14-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C14-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C14-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C14-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C15-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C15-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C15-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C15-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C15-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C15-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C15-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C15-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C15-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C15-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C16-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C16-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C16-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C16-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C16-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C16-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C16-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C16-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C16-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C16-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C17-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C17-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C17-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C17-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C17-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C17-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C17-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C17-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C17-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C17-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C18-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C18-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C18-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C18-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C18-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C18-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C18-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C18-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C18-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C18-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C19-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C19-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C19-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C19-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C19-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C19-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C19-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C19-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C19-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C19-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C20-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C20-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C20-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C20-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C20-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C20-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C20-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C20-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C20-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C20-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C21-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C21-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C21-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C21-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C21-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C21-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C21-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C21-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C21-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C21-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C22-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C22-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C22-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C22-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C22-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C22-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C22-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C22-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C22-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C22-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C23-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C23-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C23-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C23-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C23-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C23-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C23-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C23-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C23-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C23-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C24-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C24-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C24-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C24-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C24-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C24-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C24-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C24-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C24-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C24-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C25-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C25-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C25-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C25-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C25-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C25-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C25-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C25-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C25-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C25-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C26-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C26-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C26-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C26-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C26-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C26-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C26-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C26-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C26-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C26-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C27-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C27-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C27-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C27-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C27-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C27-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C27-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C27-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C27-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C27-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C28-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C28-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C28-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C28-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C28-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C28-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C28-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C28-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C28-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C28-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C29-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C29-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C29-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C29-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C29-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C29-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C29-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C29-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C29-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C29-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C30-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C30-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C30-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C30-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C30-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C30-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C30-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C30-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C30-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C30-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C31-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C31-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C31-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C31-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C31-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C31-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C31-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C31-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C31-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C31-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C32-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C32-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C32-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C32-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C32-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C32-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C32-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C32-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C32-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C32-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C01-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C01-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C01-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C01-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C01-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C01-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C01-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C01-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C01-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C01-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C02-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C02-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C02-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C02-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C02-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C02-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C02-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C02-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C02-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C02-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C03-01 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C03-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C03-03 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C03-04 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C03-05 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C03-06 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C03-07 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C03-08 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C03-09 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +- type: pyaml.bpm.bpm + name: BPM_C03-10 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: x_pos + y_pos: y_pos +control_system_catalogs: +- type: pyaml.configuration.catalog + name: live_catalog + refs: + - type: pyaml.configuration.catalog_entry + reference: BPM_C04-01/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-01/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C04-01/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C04-02/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-02/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C04-02/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C04-03/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-03/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C04-03/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C04-04/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-04/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C04-04/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C04-05/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-05/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C04-05/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C04-06/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-06/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C04-06/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C04-07/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-07/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C04-07/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C04-08/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-08/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C04-08/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C04-09/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-09/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C04-09/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C04-10/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-10/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C04-10/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C05-01/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-01/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C05-01/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C05-02/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-02/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C05-02/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C05-03/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-03/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C05-03/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C05-04/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-04/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C05-04/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C05-05/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-05/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C05-05/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C05-06/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-06/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C05-06/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C05-07/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-07/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C05-07/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C05-08/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-08/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C05-08/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C05-09/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-09/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C05-09/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C05-10/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-10/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C05-10/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C06-01/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-01/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C06-01/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C06-02/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-02/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C06-02/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C06-03/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-03/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C06-03/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C06-04/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-04/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C06-04/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C06-05/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-05/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C06-05/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C06-06/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-06/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C06-06/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C06-07/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-07/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C06-07/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C06-08/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-08/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C06-08/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C06-09/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-09/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C06-09/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C06-10/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-10/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C06-10/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C07-01/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-01/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C07-01/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C07-02/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-02/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C07-02/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C07-03/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-03/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C07-03/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C07-04/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-04/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C07-04/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C07-05/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-05/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C07-05/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C07-06/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-06/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C07-06/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C07-07/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-07/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C07-07/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C07-08/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-08/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C07-08/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C07-09/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-09/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C07-09/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C07-10/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-10/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C07-10/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C08-01/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-01/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C08-01/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C08-02/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-02/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C08-02/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C08-03/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-03/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C08-03/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C08-04/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-04/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C08-04/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C08-05/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-05/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C08-05/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C08-06/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-06/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C08-06/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C08-07/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-07/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C08-07/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C08-08/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-08/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C08-08/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C08-09/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-09/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C08-09/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C08-10/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-10/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C08-10/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C09-01/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-01/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C09-01/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C09-02/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-02/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C09-02/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C09-03/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-03/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C09-03/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C09-04/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-04/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C09-04/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C09-05/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-05/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C09-05/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C09-06/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-06/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C09-06/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C09-07/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-07/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C09-07/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C09-08/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-08/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C09-08/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C09-09/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-09/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C09-09/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C09-10/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-10/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C09-10/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C10-01/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-01/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C10-01/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C10-02/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-02/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C10-02/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C10-03/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-03/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C10-03/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C10-04/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-04/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C10-04/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C10-05/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-05/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C10-05/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C10-06/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-06/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C10-06/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C10-07/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-07/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C10-07/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C10-08/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-08/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C10-08/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C10-09/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-09/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C10-09/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C10-10/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-10/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C10-10/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C11-01/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-01/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C11-01/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C11-02/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-02/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C11-02/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C11-03/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-03/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C11-03/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C11-04/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-04/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C11-04/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C11-05/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-05/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C11-05/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C11-06/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-06/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C11-06/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C11-07/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-07/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C11-07/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C11-08/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-08/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C11-08/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C11-09/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-09/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C11-09/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C11-10/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-10/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C11-10/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C12-01/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-01/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C12-01/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C12-02/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-02/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C12-02/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C12-03/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-03/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C12-03/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C12-04/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-04/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C12-04/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C12-05/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-05/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C12-05/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C12-06/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-06/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C12-06/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C12-07/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-07/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C12-07/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C12-08/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-08/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C12-08/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C12-09/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-09/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C12-09/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C12-10/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-10/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C12-10/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C13-01/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-01/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C13-01/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C13-02/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-02/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C13-02/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C13-03/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-03/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C13-03/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C13-04/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-04/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C13-04/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C13-05/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-05/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C13-05/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C13-06/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-06/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C13-06/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C13-07/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-07/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C13-07/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C13-08/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-08/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C13-08/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C13-09/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-09/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C13-09/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C13-10/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-10/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C13-10/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C14-01/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-01/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C14-01/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C14-02/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-02/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C14-02/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C14-03/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-03/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C14-03/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C14-04/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-04/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C14-04/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C14-05/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-05/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C14-05/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C14-06/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-06/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C14-06/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C14-07/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-07/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C14-07/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C14-08/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-08/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C14-08/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C14-09/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-09/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C14-09/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C14-10/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-10/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C14-10/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C15-01/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-01/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C15-01/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C15-02/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-02/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C15-02/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C15-03/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-03/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C15-03/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C15-04/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-04/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C15-04/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C15-05/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-05/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C15-05/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C15-06/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-06/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C15-06/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C15-07/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-07/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C15-07/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C15-08/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-08/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C15-08/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C15-09/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-09/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C15-09/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C15-10/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-10/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C15-10/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C16-01/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-01/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C16-01/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C16-02/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-02/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C16-02/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C16-03/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-03/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C16-03/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C16-04/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-04/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C16-04/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C16-05/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-05/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C16-05/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C16-06/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-06/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C16-06/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C16-07/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-07/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C16-07/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C16-08/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-08/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C16-08/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C16-09/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-09/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C16-09/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C16-10/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-10/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C16-10/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C17-01/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-01/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C17-01/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C17-02/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-02/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C17-02/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C17-03/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-03/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C17-03/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C17-04/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-04/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C17-04/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C17-05/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-05/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C17-05/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C17-06/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-06/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C17-06/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C17-07/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-07/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C17-07/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C17-08/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-08/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C17-08/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C17-09/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-09/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C17-09/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C17-10/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-10/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C17-10/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C18-01/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-01/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C18-01/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C18-02/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-02/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C18-02/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C18-03/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-03/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C18-03/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C18-04/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-04/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C18-04/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C18-05/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-05/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C18-05/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C18-06/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-06/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C18-06/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C18-07/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-07/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C18-07/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C18-08/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-08/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C18-08/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C18-09/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-09/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C18-09/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C18-10/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-10/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C18-10/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C19-01/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-01/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C19-01/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C19-02/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-02/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C19-02/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C19-03/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-03/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C19-03/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C19-04/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-04/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C19-04/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C19-05/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-05/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C19-05/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C19-06/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-06/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C19-06/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C19-07/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-07/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C19-07/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C19-08/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-08/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C19-08/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C19-09/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-09/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C19-09/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C19-10/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-10/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C19-10/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C20-01/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-01/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C20-01/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C20-02/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-02/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C20-02/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C20-03/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-03/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C20-03/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C20-04/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-04/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C20-04/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C20-05/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-05/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C20-05/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C20-06/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-06/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C20-06/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C20-07/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-07/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C20-07/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C20-08/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-08/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C20-08/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C20-09/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-09/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C20-09/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C20-10/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-10/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C20-10/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C21-01/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-01/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C21-01/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C21-02/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-02/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C21-02/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C21-03/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-03/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C21-03/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C21-04/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-04/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C21-04/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C21-05/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-05/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C21-05/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C21-06/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-06/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C21-06/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C21-07/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-07/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C21-07/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C21-08/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-08/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C21-08/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C21-09/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-09/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C21-09/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C21-10/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-10/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C21-10/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C22-01/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-01/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C22-01/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C22-02/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-02/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C22-02/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C22-03/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-03/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C22-03/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C22-04/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-04/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C22-04/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C22-05/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-05/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C22-05/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C22-06/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-06/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C22-06/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C22-07/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-07/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C22-07/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C22-08/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-08/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C22-08/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C22-09/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-09/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C22-09/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C22-10/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-10/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C22-10/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C23-01/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-01/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C23-01/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C23-02/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-02/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C23-02/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C23-03/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-03/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C23-03/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C23-04/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-04/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C23-04/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C23-05/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-05/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C23-05/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C23-06/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-06/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C23-06/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C23-07/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-07/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C23-07/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C23-08/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-08/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C23-08/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C23-09/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-09/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C23-09/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C23-10/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-10/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C23-10/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C24-01/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-01/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C24-01/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C24-02/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-02/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C24-02/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C24-03/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-03/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C24-03/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C24-04/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-04/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C24-04/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C24-05/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-05/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C24-05/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C24-06/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-06/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C24-06/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C24-07/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-07/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C24-07/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C24-08/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-08/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C24-08/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C24-09/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-09/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C24-09/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C24-10/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-10/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C24-10/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C25-01/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-01/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C25-01/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C25-02/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-02/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C25-02/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C25-03/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-03/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C25-03/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C25-04/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-04/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C25-04/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C25-05/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-05/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C25-05/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C25-06/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-06/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C25-06/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C25-07/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-07/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C25-07/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C25-08/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-08/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C25-08/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C25-09/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-09/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C25-09/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C25-10/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-10/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C25-10/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C26-01/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-01/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C26-01/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C26-02/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-02/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C26-02/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C26-03/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-03/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C26-03/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C26-04/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-04/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C26-04/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C26-05/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-05/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C26-05/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C26-06/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-06/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C26-06/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C26-07/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-07/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C26-07/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C26-08/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-08/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C26-08/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C26-09/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-09/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C26-09/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C26-10/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-10/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C26-10/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C27-01/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-01/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C27-01/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C27-02/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-02/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C27-02/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C27-03/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-03/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C27-03/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C27-04/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-04/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C27-04/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C27-05/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-05/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C27-05/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C27-06/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-06/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C27-06/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C27-07/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-07/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C27-07/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C27-08/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-08/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C27-08/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C27-09/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-09/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C27-09/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C27-10/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-10/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C27-10/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C28-01/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-01/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C28-01/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C28-02/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-02/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C28-02/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C28-03/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-03/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C28-03/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C28-04/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-04/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C28-04/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C28-05/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-05/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C28-05/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C28-06/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-06/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C28-06/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C28-07/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-07/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C28-07/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C28-08/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-08/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C28-08/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C28-09/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-09/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C28-09/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C28-10/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-10/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C28-10/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C29-01/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-01/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C29-01/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C29-02/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-02/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C29-02/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C29-03/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-03/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C29-03/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C29-04/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-04/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C29-04/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C29-05/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-05/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C29-05/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C29-06/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-06/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C29-06/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C29-07/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-07/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C29-07/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C29-08/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-08/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C29-08/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C29-09/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-09/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C29-09/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C29-10/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-10/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C29-10/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C30-01/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-01/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C30-01/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C30-02/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-02/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C30-02/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C30-03/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-03/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C30-03/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C30-04/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-04/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C30-04/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C30-05/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-05/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C30-05/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C30-06/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-06/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C30-06/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C30-07/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-07/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C30-07/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C30-08/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-08/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C30-08/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C30-09/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-09/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C30-09/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C30-10/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-10/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C30-10/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C31-01/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-01/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C31-01/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C31-02/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-02/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C31-02/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C31-03/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-03/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C31-03/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C31-04/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-04/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C31-04/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C31-05/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-05/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C31-05/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C31-06/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-06/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C31-06/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C31-07/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-07/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C31-07/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C31-08/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-08/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C31-08/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C31-09/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-09/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C31-09/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C31-10/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-10/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C31-10/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C32-01/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-01/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C32-01/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C32-02/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-02/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C32-02/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C32-03/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-03/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C32-03/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C32-04/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-04/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C32-04/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C32-05/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-05/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C32-05/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C32-06/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-06/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C32-06/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C32-07/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-07/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C32-07/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C32-08/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-08/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C32-08/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C32-09/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-09/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C32-09/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C32-10/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-10/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C32-10/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C01-01/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-01/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C01-01/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C01-02/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-02/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C01-02/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C01-03/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-03/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C01-03/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C01-04/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-04/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C01-04/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C01-05/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-05/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C01-05/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C01-06/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-06/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C01-06/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C01-07/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-07/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C01-07/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C01-08/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-08/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C01-08/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C01-09/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-09/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C01-09/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C01-10/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-10/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C01-10/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C02-01/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-01/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C02-01/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C02-02/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-02/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C02-02/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C02-03/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-03/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C02-03/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C02-04/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-04/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C02-04/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C02-05/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-05/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C02-05/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C02-06/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-06/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C02-06/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C02-07/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-07/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C02-07/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C02-08/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-08/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C02-08/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C02-09/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-09/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C02-09/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C02-10/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-10/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C02-10/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C03-01/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-01/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C03-01/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C03-02/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-02/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C03-02/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C03-03/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-03/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C03-03/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C03-04/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-04/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C03-04/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C03-05/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-05/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C03-05/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C03-06/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-06/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C03-06/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C03-07/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-07/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C03-07/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C03-08/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-08/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C03-08/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C03-09/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-09/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C03-09/y_pos + device: 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: pyaml.configuration.catalog_entry + reference: BPM_C03-10/x_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-10/SA_HPosition unit: m - y_pos: + - type: pyaml.configuration.catalog_entry + reference: BPM_C03-10/y_pos + device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-10/SA_VPosition unit: m From 2a5a155b8b4cdd18260b1367b8cafde8705079ba Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Fri, 13 Feb 2026 15:37:38 +0100 Subject: [PATCH 06/14] Moving the DeviceAccess retrieval to the control system. --- pyaml/bpm/bpm_model.py | 56 ++++++++++++--- pyaml/bpm/bpm_simple_model.py | 65 +++++++++++------ pyaml/bpm/bpm_tiltoffset_model.py | 38 +++++----- pyaml/configuration/catalog.py | 112 ++++++++++++++++++++++++++++++ pyaml/control/controlsystem.py | 75 ++++++++++++++++---- 5 files changed, 282 insertions(+), 64 deletions(-) diff --git a/pyaml/bpm/bpm_model.py b/pyaml/bpm/bpm_model.py index be410c35..598b4da2 100644 --- a/pyaml/bpm/bpm_model.py +++ b/pyaml/bpm/bpm_model.py @@ -14,40 +14,74 @@ class BPMModel(metaclass=ABCMeta): """ @abstractmethod - def get_pos_devices(self, name: str, catalog: Catalog) -> list[DeviceAccess | None]: + def get_positions_device(self) -> str | None: """ Get device handles used for position reading Returns ------- - list[DeviceAccess] - h and v position devices + str | None + h and v positions naming """ pass @abstractmethod - def get_tilt_device(self, name: str, catalog: Catalog) -> DeviceAccess | None: + def get_x_pos_device(self) -> str | None: + """ + Get device handles used for position reading + + Returns + ------- + str | None + h position naming + """ + pass + + @abstractmethod + def get_y_pos_device(self) -> str | None: + """ + Get device handles used for position reading + + Returns + ------- + str | None + v position naming + """ + pass + + @abstractmethod + def get_tilt_device(self) -> str | None: """ Get device handle used for tilt access Returns ------- - list[DeviceAccess] - tilt device + str | None + tilt naming + """ + pass + + @abstractmethod + def get_x_offset_device(self) -> str | None: + """ + Get device handles used for offset access + + Returns + ------- + str | None + h offset naming """ pass @abstractmethod - def get_offset_devices( - self, name: str, catalog: Catalog - ) -> list[DeviceAccess | None]: + def get_y_offset_device(self) -> str | None: """ Get device handles used for offset access Returns ------- - list[DeviceAccess] - h and v offset devices + str | None + v offset naming """ pass diff --git a/pyaml/bpm/bpm_simple_model.py b/pyaml/bpm/bpm_simple_model.py index d96ab454..6e346d02 100644 --- a/pyaml/bpm/bpm_simple_model.py +++ b/pyaml/bpm/bpm_simple_model.py @@ -48,48 +48,71 @@ class BPMSimpleModel(BPMModel): def __init__(self, cfg: ConfigModel): self._cfg = cfg - def get_pos_devices(self, name: str, catalog: Catalog) -> list[DeviceAccess | None]: + def get_positions_device(self) -> str | None: """ Get device handles used for position reading Returns ------- - list[DeviceAccess] - Array of DeviceAccess + str | None + h and v positions naming """ - if self.is_pos_indexed(): - ref = name + "/" + self._cfg.positions - dev = catalog.get_one(ref) - pos_devices = [dev, dev] - else: - x_ref = name + "/" + self._cfg.x_pos - y_ref = name + "/" + self._cfg.y_pos - pos_devices = [catalog.get_one(x_ref), catalog.get_one(y_ref)] - return pos_devices + return self._cfg.positions - def get_tilt_device(self, name: str, catalog: Catalog) -> DeviceAccess | None: + def get_x_pos_device(self) -> str | None: + """ + Get device handles used for position reading + + Returns + ------- + str | None + h position naming + """ + return self._cfg.x_pos + + def get_y_pos_device(self) -> str | None: + """ + Get device handles used for position reading + + Returns + ------- + str | None + v position naming + """ + return self._cfg.y_pos + + def get_tilt_device(self) -> str | None: """ Get device handle used for tilt access Returns ------- - list[DeviceAccess] - Array of DeviceAccess + str | None + tilt naming """ return None - def get_offset_devices( - self, name: str, catalog: Catalog - ) -> list[DeviceAccess | None]: + def get_x_offset_device(self) -> str | None: """ Get device handles used for offset access Returns ------- - list[DeviceAccess] - Array of DeviceAccess + str | None + h offset naming + """ + return None + + def get_y_offset_device(self) -> str | None: """ - return [None, None] + Get device handles used for offset access + + Returns + ------- + str | None + v offset naming + """ + return None def x_pos_index(self) -> int | None: """ diff --git a/pyaml/bpm/bpm_tiltoffset_model.py b/pyaml/bpm/bpm_tiltoffset_model.py index e0f4c86d..9fc99bdb 100644 --- a/pyaml/bpm/bpm_tiltoffset_model.py +++ b/pyaml/bpm/bpm_tiltoffset_model.py @@ -50,36 +50,38 @@ class BPMTiltOffsetModel(BPMSimpleModel): def __init__(self, cfg: ConfigModel): super().__init__(cfg) - def get_tilt_device(self, name: str, catalog: Catalog) -> DeviceAccess | None: + def get_tilt_device(self) -> str | None: """ Get device handle used for tilt access Returns ------- - DeviceAccess - The DeviceAccess for tilt + str | None + tilt naming """ - ref = name + "/" + self._cfg.tilt - if catalog.has_reference(ref): - return catalog.get_one(ref) - return None - - def get_offset_devices( - self, name: str, catalog: Catalog - ) -> list[DeviceAccess | None]: + return self._cfg.tilt + + def get_x_offset_device(self) -> str | None: + """ + Get device handles used for offset access + + Returns + ------- + str | None + h offset naming + """ + return self._cfg.x_offset + + def get_y_offset_device(self) -> str | None: """ Get device handles used for offset access Returns ------- - list[DeviceAccess] - Array of 2 DeviceAccess: [x_offset, y_offset] + str | None + v offset naming """ - x_ref = name + "/" + self._cfg.x_offset - y_ref = name + "/" + self._cfg.y_offset - if catalog.has_reference(x_ref) and catalog.has_reference(y_ref): - return [catalog.get_one(x_ref), catalog.get_one(y_ref)] - return [None, None] + return self._cfg.y_offset def __repr__(self): return __pyaml_repr__(self) diff --git a/pyaml/configuration/catalog.py b/pyaml/configuration/catalog.py index f28807f7..20fa8535 100644 --- a/pyaml/configuration/catalog.py +++ b/pyaml/configuration/catalog.py @@ -145,10 +145,40 @@ def get_many(self, reference: str) -> list[DeviceAccess]: # ------------------------------------------------------------------ + def find_by_prefix(self, prefix: str) -> dict[str, CatalogValue]: + """ + Return all catalog entries whose reference starts with + the given prefix. + + Parameters + ---------- + prefix : str + Prefix to match at the beginning of reference keys. + + Returns + ------- + dict[str, CatalogValue] + Mapping {reference -> DeviceAccess or list[DeviceAccess]}. + + Notes + ----- + - The prefix is escaped using re.escape() to avoid + unintended regular expression behavior. + - This is a convenience wrapper around `find()`. + """ + return self.find(rf"^{re.escape(prefix)}") + + # ------------------------------------------------------------------ + def find(self, pattern: str) -> dict[str, CatalogValue]: """ Resolve references matching a regular expression. + Parameters + ---------- + pattern : str + Regular expression applied to reference keys. + Returns ------- dict[str, DeviceAccess | list[DeviceAccess]] @@ -159,6 +189,88 @@ def find(self, pattern: str) -> dict[str, CatalogValue]: # ------------------------------------------------------------------ + def get_sub_catalog_by_prefix(self, prefix: str) -> "Catalog": + """ + Create a new Catalog containing only the references + that start with the given prefix, and remove the prefix + from the keys in the returned catalog. + + Parameters + ---------- + prefix : str + Prefix to match at the beginning of reference keys. + + Returns + ------- + Catalog + A new Catalog instance containing only the matching + references, with the prefix removed from their keys. + + Notes + ----- + - The prefix is matched literally (no regex behavior). + - The underlying DeviceAccess instances are NOT copied; + the same objects are reused. + - If no references match, an empty Catalog is returned. + - If removing the prefix results in duplicate keys, + a PyAMLException is raised. + """ + sub_catalog = Catalog(ConfigModel(name=self.get_name() + "/" + prefix, refs=[])) + + for key, value in self._entries.items(): + if key.startswith(prefix): + # Remove prefix from key + new_key = key[len(prefix) :] + + if not new_key: + raise PyAMLException( + f"Removing prefix '{prefix}' from '{key}' " + "results in an empty reference." + ) + + sub_catalog.add(new_key, value) + + return sub_catalog + + # ------------------------------------------------------------------ + + def get_sub_catalog(self, pattern: str) -> "Catalog": + """ + Create a new Catalog containing only the references + matching the given regular expression. + + Parameters + ---------- + pattern : str + Regular expression applied to reference keys. + + Returns + ------- + Catalog + A new Catalog instance containing only the matching + references and their associated DeviceAccess objects. + + Notes + ----- + - The returned catalog is independent from the original one. + - The underlying DeviceAccess objects are not copied; the + same instances are reused. + - If no references match, an empty Catalog is returned. + """ + data = self.find(pattern) + + # Create a new empty catalog with a derived name + sub_catalog = Catalog( + ConfigModel(name=self.get_name() + "/" + pattern, refs=[]) + ) + + # Re-register matching entries in the new catalog + for k, v in data.items(): + sub_catalog.add(k, v) + return sub_catalog + + # ------------------------------------------------------------------ + def keys(self) -> list[str]: """Return all catalog reference keys.""" return list(self._entries.keys()) diff --git a/pyaml/control/controlsystem.py b/pyaml/control/controlsystem.py index 55d29d48..53cffde1 100644 --- a/pyaml/control/controlsystem.py +++ b/pyaml/control/controlsystem.py @@ -1,3 +1,4 @@ +import re from abc import ABCMeta, abstractmethod from typing import Tuple @@ -123,7 +124,21 @@ def create_bpm_aggregators(self, bpms: list[BPM]) -> list[ScalarAggregator]: aggh = self.create_scalar_aggregator() aggv = self.create_scalar_aggregator() for b in bpms: - devs = self.attach(b.model.get_pos_devices(b.get_name(), self._catalog)) + bpm_catalog = self._catalog.get_sub_catalog_by_prefix( + b.get_name() + "/" + ) + model = b.model + hDev = ( + bpm_catalog.get_one(model.get_x_pos_device()) + if model.get_x_pos_device() is not None + else None + ) + vDev = ( + bpm_catalog.get_one(model.get_y_pos_device()) + if model.get_y_pos_device() is not None + else None + ) + devs = self.attach([hDev, vDev]) agg.add_devices(devs) aggh.add_devices(devs[0]) aggv.add_devices(devs[1]) @@ -253,19 +268,51 @@ def fill_device(self, elements: list[Element]): self.add_magnet(m) elif isinstance(e, BPM): - hDev = e.model.get_pos_devices(e.get_name(), self._catalog)[0] - vDev = e.model.get_pos_devices(e.get_name(), self._catalog)[1] - tiltDev = e.model.get_tilt_device(e.get_name(), self._catalog) - hOffsetDev = e.model.get_offset_devices(e.get_name(), self._catalog)[0] - vOffsetDev = e.model.get_offset_devices(e.get_name(), self._catalog)[1] - ahDev = self.attach_indexed(hDev, e.model.x_pos_index()) - avDev = self.attach_indexed(vDev, e.model.y_pos_index()) - atiltDev = self.attach_indexed(tiltDev, e.model.tilt_index()) - ahOffsetDev = self.attach_indexed(hOffsetDev, e.model.x_offset_index()) - avOffsetDev = self.attach_indexed(vOffsetDev, e.model.y_offset_index()) - positions = RBpmArray(e.model, ahDev, avDev) - tilt = RWBpmTiltScalar(e.model, atiltDev) - offsets = RWBpmOffsetArray(e.model, ahOffsetDev, avOffsetDev) + bpm_catalog = self._catalog.get_sub_catalog_by_prefix( + e.get_name() + "/" + ) + model = e.model + if model.is_pos_indexed(): + hDev = ( + bpm_catalog.get_one(model.get_positions_device()) + if model.get_positions_device() is not None + else None + ) + vDev = hDev + else: + hDev = ( + bpm_catalog.get_one(model.get_x_pos_device()) + if model.get_x_pos_device() is not None + else None + ) + vDev = ( + bpm_catalog.get_one(model.get_y_pos_device()) + if model.get_y_pos_device() is not None + else None + ) + tiltDev = ( + bpm_catalog.get_one(model.get_tilt_device()) + if model.get_tilt_device() is not None + else None + ) + hOffsetDev = ( + bpm_catalog.get_one(model.get_x_offset_device()) + if model.get_x_offset_device() is not None + else None + ) + vOffsetDev = ( + bpm_catalog.get_one(model.get_y_offset_device()) + if model.get_y_offset_device() is not None + else None + ) + ahDev = self.attach_indexed(hDev, model.x_pos_index()) + avDev = self.attach_indexed(vDev, model.y_pos_index()) + atiltDev = self.attach_indexed(tiltDev, model.tilt_index()) + ahOffsetDev = self.attach_indexed(hOffsetDev, model.x_offset_index()) + avOffsetDev = self.attach_indexed(vOffsetDev, model.y_offset_index()) + positions = RBpmArray(model, ahDev, avDev) + tilt = RWBpmTiltScalar(model, atiltDev) + offsets = RWBpmOffsetArray(model, ahOffsetDev, avOffsetDev) e = e.attach(self, positions, offsets, tilt) self.add_bpm(e) From 348bdde9a4767512a6994cfd4602006ea8188fe2 Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Tue, 17 Feb 2026 15:30:56 +0100 Subject: [PATCH 07/14] Nore more key building. Just use directly the key. --- pyaml/control/controlsystem.py | 22 +- tests/config/EBSOrbit.yaml | 1280 ++++++++++++------------ tests/config/bad_conf_duplicate_2.yaml | 12 +- tests/config/bad_conf_duplicate_3.yaml | 16 +- tests/config/bpms.yaml | 20 +- tests/config/sr.yaml | 8 +- 6 files changed, 676 insertions(+), 682 deletions(-) diff --git a/pyaml/control/controlsystem.py b/pyaml/control/controlsystem.py index 53cffde1..3b36cd33 100644 --- a/pyaml/control/controlsystem.py +++ b/pyaml/control/controlsystem.py @@ -124,17 +124,14 @@ def create_bpm_aggregators(self, bpms: list[BPM]) -> list[ScalarAggregator]: aggh = self.create_scalar_aggregator() aggv = self.create_scalar_aggregator() for b in bpms: - bpm_catalog = self._catalog.get_sub_catalog_by_prefix( - b.get_name() + "/" - ) model = b.model hDev = ( - bpm_catalog.get_one(model.get_x_pos_device()) + self._catalog.get_one(model.get_x_pos_device()) if model.get_x_pos_device() is not None else None ) vDev = ( - bpm_catalog.get_one(model.get_y_pos_device()) + self._catalog.get_one(model.get_y_pos_device()) if model.get_y_pos_device() is not None else None ) @@ -268,40 +265,37 @@ def fill_device(self, elements: list[Element]): self.add_magnet(m) elif isinstance(e, BPM): - bpm_catalog = self._catalog.get_sub_catalog_by_prefix( - e.get_name() + "/" - ) model = e.model if model.is_pos_indexed(): hDev = ( - bpm_catalog.get_one(model.get_positions_device()) + self._catalog.get_one(model.get_positions_device()) if model.get_positions_device() is not None else None ) vDev = hDev else: hDev = ( - bpm_catalog.get_one(model.get_x_pos_device()) + self._catalog.get_one(model.get_x_pos_device()) if model.get_x_pos_device() is not None else None ) vDev = ( - bpm_catalog.get_one(model.get_y_pos_device()) + self._catalog.get_one(model.get_y_pos_device()) if model.get_y_pos_device() is not None else None ) tiltDev = ( - bpm_catalog.get_one(model.get_tilt_device()) + self._catalog.get_one(model.get_tilt_device()) if model.get_tilt_device() is not None else None ) hOffsetDev = ( - bpm_catalog.get_one(model.get_x_offset_device()) + self._catalog.get_one(model.get_x_offset_device()) if model.get_x_offset_device() is not None else None ) vOffsetDev = ( - bpm_catalog.get_one(model.get_y_offset_device()) + self._catalog.get_one(model.get_y_offset_device()) if model.get_y_offset_device() is not None else None ) diff --git a/tests/config/EBSOrbit.yaml b/tests/config/EBSOrbit.yaml index f6d7666c..b204f161 100644 --- a/tests/config/EBSOrbit.yaml +++ b/tests/config/EBSOrbit.yaml @@ -8859,1922 +8859,1922 @@ devices: name: BPM_C04-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C04-01/x_pos + y_pos: BPM_C04-01/y_pos - type: pyaml.bpm.bpm name: BPM_C04-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C04-02/x_pos + y_pos: BPM_C04-02/y_pos - type: pyaml.bpm.bpm name: BPM_C04-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C04-03/x_pos + y_pos: BPM_C04-03/y_pos - type: pyaml.bpm.bpm name: BPM_C04-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C04-04/x_pos + y_pos: BPM_C04-04/y_pos - type: pyaml.bpm.bpm name: BPM_C04-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C04-05/x_pos + y_pos: BPM_C04-05/y_pos - type: pyaml.bpm.bpm name: BPM_C04-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C04-06/x_pos + y_pos: BPM_C04-06/y_pos - type: pyaml.bpm.bpm name: BPM_C04-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C04-07/x_pos + y_pos: BPM_C04-07/y_pos - type: pyaml.bpm.bpm name: BPM_C04-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C04-08/x_pos + y_pos: BPM_C04-08/y_pos - type: pyaml.bpm.bpm name: BPM_C04-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C04-09/x_pos + y_pos: BPM_C04-09/y_pos - type: pyaml.bpm.bpm name: BPM_C04-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C04-10/x_pos + y_pos: BPM_C04-10/y_pos - type: pyaml.bpm.bpm name: BPM_C05-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C05-01/x_pos + y_pos: BPM_C05-01/y_pos - type: pyaml.bpm.bpm name: BPM_C05-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C05-02/x_pos + y_pos: BPM_C05-02/y_pos - type: pyaml.bpm.bpm name: BPM_C05-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C05-03/x_pos + y_pos: BPM_C05-03/y_pos - type: pyaml.bpm.bpm name: BPM_C05-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C05-04/x_pos + y_pos: BPM_C05-04/y_pos - type: pyaml.bpm.bpm name: BPM_C05-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C05-05/x_pos + y_pos: BPM_C05-05/y_pos - type: pyaml.bpm.bpm name: BPM_C05-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C05-06/x_pos + y_pos: BPM_C05-06/y_pos - type: pyaml.bpm.bpm name: BPM_C05-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C05-07/x_pos + y_pos: BPM_C05-07/y_pos - type: pyaml.bpm.bpm name: BPM_C05-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C05-08/x_pos + y_pos: BPM_C05-08/y_pos - type: pyaml.bpm.bpm name: BPM_C05-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C05-09/x_pos + y_pos: BPM_C05-09/y_pos - type: pyaml.bpm.bpm name: BPM_C05-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C05-10/x_pos + y_pos: BPM_C05-10/y_pos - type: pyaml.bpm.bpm name: BPM_C06-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C06-01/x_pos + y_pos: BPM_C06-01/y_pos - type: pyaml.bpm.bpm name: BPM_C06-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C06-02/x_pos + y_pos: BPM_C06-02/y_pos - type: pyaml.bpm.bpm name: BPM_C06-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C06-03/x_pos + y_pos: BPM_C06-03/y_pos - type: pyaml.bpm.bpm name: BPM_C06-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C06-04/x_pos + y_pos: BPM_C06-04/y_pos - type: pyaml.bpm.bpm name: BPM_C06-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C06-05/x_pos + y_pos: BPM_C06-05/y_pos - type: pyaml.bpm.bpm name: BPM_C06-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C06-06/x_pos + y_pos: BPM_C06-06/y_pos - type: pyaml.bpm.bpm name: BPM_C06-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C06-07/x_pos + y_pos: BPM_C06-07/y_pos - type: pyaml.bpm.bpm name: BPM_C06-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C06-08/x_pos + y_pos: BPM_C06-08/y_pos - type: pyaml.bpm.bpm name: BPM_C06-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C06-09/x_pos + y_pos: BPM_C06-09/y_pos - type: pyaml.bpm.bpm name: BPM_C06-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C06-10/x_pos + y_pos: BPM_C06-10/y_pos - type: pyaml.bpm.bpm name: BPM_C07-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C07-01/x_pos + y_pos: BPM_C07-01/y_pos - type: pyaml.bpm.bpm name: BPM_C07-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C07-02/x_pos + y_pos: BPM_C07-02/y_pos - type: pyaml.bpm.bpm name: BPM_C07-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C07-03/x_pos + y_pos: BPM_C07-03/y_pos - type: pyaml.bpm.bpm name: BPM_C07-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C07-04/x_pos + y_pos: BPM_C07-04/y_pos - type: pyaml.bpm.bpm name: BPM_C07-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C07-05/x_pos + y_pos: BPM_C07-05/y_pos - type: pyaml.bpm.bpm name: BPM_C07-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C07-06/x_pos + y_pos: BPM_C07-06/y_pos - type: pyaml.bpm.bpm name: BPM_C07-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C07-07/x_pos + y_pos: BPM_C07-07/y_pos - type: pyaml.bpm.bpm name: BPM_C07-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C07-08/x_pos + y_pos: BPM_C07-08/y_pos - type: pyaml.bpm.bpm name: BPM_C07-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C07-09/x_pos + y_pos: BPM_C07-09/y_pos - type: pyaml.bpm.bpm name: BPM_C07-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C07-10/x_pos + y_pos: BPM_C07-10/y_pos - type: pyaml.bpm.bpm name: BPM_C08-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C08-01/x_pos + y_pos: BPM_C08-01/y_pos - type: pyaml.bpm.bpm name: BPM_C08-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C08-02/x_pos + y_pos: BPM_C08-02/y_pos - type: pyaml.bpm.bpm name: BPM_C08-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C08-03/x_pos + y_pos: BPM_C08-03/y_pos - type: pyaml.bpm.bpm name: BPM_C08-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C08-04/x_pos + y_pos: BPM_C08-04/y_pos - type: pyaml.bpm.bpm name: BPM_C08-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C08-05/x_pos + y_pos: BPM_C08-05/y_pos - type: pyaml.bpm.bpm name: BPM_C08-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C08-06/x_pos + y_pos: BPM_C08-06/y_pos - type: pyaml.bpm.bpm name: BPM_C08-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C08-07/x_pos + y_pos: BPM_C08-07/y_pos - type: pyaml.bpm.bpm name: BPM_C08-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C08-08/x_pos + y_pos: BPM_C08-08/y_pos - type: pyaml.bpm.bpm name: BPM_C08-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C08-09/x_pos + y_pos: BPM_C08-09/y_pos - type: pyaml.bpm.bpm name: BPM_C08-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C08-10/x_pos + y_pos: BPM_C08-10/y_pos - type: pyaml.bpm.bpm name: BPM_C09-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C09-01/x_pos + y_pos: BPM_C09-01/y_pos - type: pyaml.bpm.bpm name: BPM_C09-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C09-02/x_pos + y_pos: BPM_C09-02/y_pos - type: pyaml.bpm.bpm name: BPM_C09-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C09-03/x_pos + y_pos: BPM_C09-03/y_pos - type: pyaml.bpm.bpm name: BPM_C09-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C09-04/x_pos + y_pos: BPM_C09-04/y_pos - type: pyaml.bpm.bpm name: BPM_C09-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C09-05/x_pos + y_pos: BPM_C09-05/y_pos - type: pyaml.bpm.bpm name: BPM_C09-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C09-06/x_pos + y_pos: BPM_C09-06/y_pos - type: pyaml.bpm.bpm name: BPM_C09-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C09-07/x_pos + y_pos: BPM_C09-07/y_pos - type: pyaml.bpm.bpm name: BPM_C09-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C09-08/x_pos + y_pos: BPM_C09-08/y_pos - type: pyaml.bpm.bpm name: BPM_C09-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C09-09/x_pos + y_pos: BPM_C09-09/y_pos - type: pyaml.bpm.bpm name: BPM_C09-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C09-09/x_pos + y_pos: BPM_C09-10/y_pos - type: pyaml.bpm.bpm name: BPM_C10-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C10-01/x_pos + y_pos: BPM_C10-01/y_pos - type: pyaml.bpm.bpm name: BPM_C10-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C10-02/x_pos + y_pos: BPM_C10-02/y_pos - type: pyaml.bpm.bpm name: BPM_C10-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C10-03/x_pos + y_pos: BPM_C10-03/y_pos - type: pyaml.bpm.bpm name: BPM_C10-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C10-04/x_pos + y_pos: BPM_C10-04/y_pos - type: pyaml.bpm.bpm name: BPM_C10-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C10-05/x_pos + y_pos: BPM_C10-05/y_pos - type: pyaml.bpm.bpm name: BPM_C10-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C10-06/x_pos + y_pos: BPM_C10-06/y_pos - type: pyaml.bpm.bpm name: BPM_C10-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C10-07/x_pos + y_pos: BPM_C10-07/y_pos - type: pyaml.bpm.bpm name: BPM_C10-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C10-08/x_pos + y_pos: BPM_C10-08/y_pos - type: pyaml.bpm.bpm name: BPM_C10-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C10-09/x_pos + y_pos: BPM_C10-09/y_pos - type: pyaml.bpm.bpm name: BPM_C10-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C10-10/x_pos + y_pos: BPM_C10-10/y_pos - type: pyaml.bpm.bpm name: BPM_C11-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C11-01/x_pos + y_pos: BPM_C11-01/y_pos - type: pyaml.bpm.bpm name: BPM_C11-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C11-02/x_pos + y_pos: BPM_C11-02/y_pos - type: pyaml.bpm.bpm name: BPM_C11-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C11-03/x_pos + y_pos: BPM_C11-03/y_pos - type: pyaml.bpm.bpm name: BPM_C11-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C11-04/x_pos + y_pos: BPM_C11-04/y_pos - type: pyaml.bpm.bpm name: BPM_C11-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C11-05/x_pos + y_pos: BPM_C11-05/y_pos - type: pyaml.bpm.bpm name: BPM_C11-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C11-06/x_pos + y_pos: BPM_C11-06/y_pos - type: pyaml.bpm.bpm name: BPM_C11-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C11-07/x_pos + y_pos: BPM_C11-07/y_pos - type: pyaml.bpm.bpm name: BPM_C11-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C11-08/x_pos + y_pos: BPM_C11-08/y_pos - type: pyaml.bpm.bpm name: BPM_C11-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C11-09/x_pos + y_pos: BPM_C11-09/y_pos - type: pyaml.bpm.bpm name: BPM_C11-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C11-10/x_pos + y_pos: BPM_C11-10/y_pos - type: pyaml.bpm.bpm name: BPM_C12-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C12-01/x_pos + y_pos: BPM_C12-01/y_pos - type: pyaml.bpm.bpm name: BPM_C12-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C12-02/x_pos + y_pos: BPM_C12-02/y_pos - type: pyaml.bpm.bpm name: BPM_C12-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C12-03/x_pos + y_pos: BPM_C12-03/y_pos - type: pyaml.bpm.bpm name: BPM_C12-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C12-04/x_pos + y_pos: BPM_C12-04/y_pos - type: pyaml.bpm.bpm name: BPM_C12-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C12-05/x_pos + y_pos: BPM_C12-05/y_pos - type: pyaml.bpm.bpm name: BPM_C12-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C12-06/x_pos + y_pos: BPM_C12-06/y_pos - type: pyaml.bpm.bpm name: BPM_C12-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C12-07/x_pos + y_pos: BPM_C12-07/y_pos - type: pyaml.bpm.bpm name: BPM_C12-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C12-08/x_pos + y_pos: BPM_C12-08/y_pos - type: pyaml.bpm.bpm name: BPM_C12-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C12-09/x_pos + y_pos: BPM_C12-09/y_pos - type: pyaml.bpm.bpm name: BPM_C12-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C12-10/x_pos + y_pos: BPM_C12-10/y_pos - type: pyaml.bpm.bpm name: BPM_C13-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C13-01/x_pos + y_pos: BPM_C13-01/y_pos - type: pyaml.bpm.bpm name: BPM_C13-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C13-02/x_pos + y_pos: BPM_C13-02/y_pos - type: pyaml.bpm.bpm name: BPM_C13-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C13-03/x_pos + y_pos: BPM_C13-03/y_pos - type: pyaml.bpm.bpm name: BPM_C13-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C13-04/x_pos + y_pos: BPM_C13-04/y_pos - type: pyaml.bpm.bpm name: BPM_C13-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C13-05/x_pos + y_pos: BPM_C13-05/y_pos - type: pyaml.bpm.bpm name: BPM_C13-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C13-06/x_pos + y_pos: BPM_C13-06/y_pos - type: pyaml.bpm.bpm name: BPM_C13-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C13-07/x_pos + y_pos: BPM_C13-07/y_pos - type: pyaml.bpm.bpm name: BPM_C13-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C13-08/x_pos + y_pos: BPM_C13-08/y_pos - type: pyaml.bpm.bpm name: BPM_C13-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C13-09/x_pos + y_pos: BPM_C13-09/y_pos - type: pyaml.bpm.bpm name: BPM_C13-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C13-10/x_pos + y_pos: BPM_C13-10/y_pos - type: pyaml.bpm.bpm name: BPM_C14-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C14-01/x_pos + y_pos: BPM_C14-01/y_pos - type: pyaml.bpm.bpm name: BPM_C14-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C14-02/x_pos + y_pos: BPM_C14-02/y_pos - type: pyaml.bpm.bpm name: BPM_C14-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C14-03/x_pos + y_pos: BPM_C14-03/y_pos - type: pyaml.bpm.bpm name: BPM_C14-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C14-04/x_pos + y_pos: BPM_C14-04/y_pos - type: pyaml.bpm.bpm name: BPM_C14-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C14-05/x_pos + y_pos: BPM_C14-05/y_pos - type: pyaml.bpm.bpm name: BPM_C14-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C14-06/x_pos + y_pos: BPM_C14-06/y_pos - type: pyaml.bpm.bpm name: BPM_C14-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C14-07/x_pos + y_pos: BPM_C14-07/y_pos - type: pyaml.bpm.bpm name: BPM_C14-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C14-08/x_pos + y_pos: BPM_C14-08/y_pos - type: pyaml.bpm.bpm name: BPM_C14-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C14-09/x_pos + y_pos: BPM_C14-09/y_pos - type: pyaml.bpm.bpm name: BPM_C14-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C14-10/x_pos + y_pos: BPM_C14-10/y_pos - type: pyaml.bpm.bpm name: BPM_C15-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C15-01/x_pos + y_pos: BPM_C15-01/y_pos - type: pyaml.bpm.bpm name: BPM_C15-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C15-02/x_pos + y_pos: BPM_C15-02/y_pos - type: pyaml.bpm.bpm name: BPM_C15-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C15-03/x_pos + y_pos: BPM_C15-03/y_pos - type: pyaml.bpm.bpm name: BPM_C15-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C15-04/x_pos + y_pos: BPM_C15-04/y_pos - type: pyaml.bpm.bpm name: BPM_C15-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C15-05/x_pos + y_pos: BPM_C15-05/y_pos - type: pyaml.bpm.bpm name: BPM_C15-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C15-06/x_pos + y_pos: BPM_C15-06/y_pos - type: pyaml.bpm.bpm name: BPM_C15-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C15-07/x_pos + y_pos: BPM_C15-07/y_pos - type: pyaml.bpm.bpm name: BPM_C15-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C15-08/x_pos + y_pos: BPM_C15-08/y_pos - type: pyaml.bpm.bpm name: BPM_C15-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C15-09/x_pos + y_pos: BPM_C15-09/y_pos - type: pyaml.bpm.bpm name: BPM_C15-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C15-10/x_pos + y_pos: BPM_C15-10/y_pos - type: pyaml.bpm.bpm name: BPM_C16-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C16-01/x_pos + y_pos: BPM_C16-01/y_pos - type: pyaml.bpm.bpm name: BPM_C16-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C16-02/x_pos + y_pos: BPM_C16-02/y_pos - type: pyaml.bpm.bpm name: BPM_C16-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C16-03/x_pos + y_pos: BPM_C16-03/y_pos - type: pyaml.bpm.bpm name: BPM_C16-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C16-04/x_pos + y_pos: BPM_C16-04/y_pos - type: pyaml.bpm.bpm name: BPM_C16-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C16-05/x_pos + y_pos: BPM_C16-05/y_pos - type: pyaml.bpm.bpm name: BPM_C16-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C16-06/x_pos + y_pos: BPM_C16-06/y_pos - type: pyaml.bpm.bpm name: BPM_C16-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C16-07/x_pos + y_pos: BPM_C16-07/y_pos - type: pyaml.bpm.bpm name: BPM_C16-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C16-08/x_pos + y_pos: BPM_C16-08/y_pos - type: pyaml.bpm.bpm name: BPM_C16-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C16-09/x_pos + y_pos: BPM_C16-09/y_pos - type: pyaml.bpm.bpm name: BPM_C16-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C16-10/x_pos + y_pos: BPM_C16-10/y_pos - type: pyaml.bpm.bpm name: BPM_C17-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C17-01/x_pos + y_pos: BPM_C17-01/y_pos - type: pyaml.bpm.bpm name: BPM_C17-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C17-02/x_pos + y_pos: BPM_C17-02/y_pos - type: pyaml.bpm.bpm name: BPM_C17-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C17-03/x_pos + y_pos: BPM_C17-03/y_pos - type: pyaml.bpm.bpm name: BPM_C17-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C17-04/x_pos + y_pos: BPM_C17-04/y_pos - type: pyaml.bpm.bpm name: BPM_C17-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C17-05/x_pos + y_pos: BPM_C17-05/y_pos - type: pyaml.bpm.bpm name: BPM_C17-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C17-06/x_pos + y_pos: BPM_C17-06/y_pos - type: pyaml.bpm.bpm name: BPM_C17-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C17-07/x_pos + y_pos: BPM_C17-07/y_pos - type: pyaml.bpm.bpm name: BPM_C17-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C17-08/x_pos + y_pos: BPM_C17-08/y_pos - type: pyaml.bpm.bpm name: BPM_C17-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C17-09/x_pos + y_pos: BPM_C17-09/y_pos - type: pyaml.bpm.bpm name: BPM_C17-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C17-10/x_pos + y_pos: BPM_C17-10/y_pos - type: pyaml.bpm.bpm name: BPM_C18-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C18-01/x_pos + y_pos: BPM_C18-01/y_pos - type: pyaml.bpm.bpm name: BPM_C18-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C18-02/x_pos + y_pos: BPM_C18-02/y_pos - type: pyaml.bpm.bpm name: BPM_C18-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C18-03/x_pos + y_pos: BPM_C18-03/y_pos - type: pyaml.bpm.bpm name: BPM_C18-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C18-04/x_pos + y_pos: BPM_C18-04/y_pos - type: pyaml.bpm.bpm name: BPM_C18-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C18-05/x_pos + y_pos: BPM_C18-05/y_pos - type: pyaml.bpm.bpm name: BPM_C18-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C18-06/x_pos + y_pos: BPM_C18-06/y_pos - type: pyaml.bpm.bpm name: BPM_C18-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C18-07/x_pos + y_pos: BPM_C18-07/y_pos - type: pyaml.bpm.bpm name: BPM_C18-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C18-08/x_pos + y_pos: BPM_C18-08/y_pos - type: pyaml.bpm.bpm name: BPM_C18-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C18-09/x_pos + y_pos: BPM_C18-09/y_pos - type: pyaml.bpm.bpm name: BPM_C18-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C18-10/x_pos + y_pos: BPM_C18-10/y_pos - type: pyaml.bpm.bpm name: BPM_C19-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C19-01/x_pos + y_pos: BPM_C19-01/y_pos - type: pyaml.bpm.bpm name: BPM_C19-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C19-02/x_pos + y_pos: BPM_C19-02/y_pos - type: pyaml.bpm.bpm name: BPM_C19-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C19-03/x_pos + y_pos: BPM_C19-03/y_pos - type: pyaml.bpm.bpm name: BPM_C19-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C19-04/x_pos + y_pos: BPM_C19-04/y_pos - type: pyaml.bpm.bpm name: BPM_C19-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C19-05/x_pos + y_pos: BPM_C19-05/y_pos - type: pyaml.bpm.bpm name: BPM_C19-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C19-06/x_pos + y_pos: BPM_C19-06/y_pos - type: pyaml.bpm.bpm name: BPM_C19-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C19-07/x_pos + y_pos: BPM_C19-07/y_pos - type: pyaml.bpm.bpm name: BPM_C19-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C19-08/x_pos + y_pos: BPM_C19-08/y_pos - type: pyaml.bpm.bpm name: BPM_C19-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C19-09/x_pos + y_pos: BPM_C19-09/y_pos - type: pyaml.bpm.bpm name: BPM_C19-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C19-10/x_pos + y_pos: BPM_C19-10/y_pos - type: pyaml.bpm.bpm name: BPM_C20-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C20-01/x_pos + y_pos: BPM_C20-01/y_pos - type: pyaml.bpm.bpm name: BPM_C20-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C20-02/x_pos + y_pos: BPM_C20-02/y_pos - type: pyaml.bpm.bpm name: BPM_C20-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C20-03/x_pos + y_pos: BPM_C20-03/y_pos - type: pyaml.bpm.bpm name: BPM_C20-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C20-04/x_pos + y_pos: BPM_C20-04/y_pos - type: pyaml.bpm.bpm name: BPM_C20-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C20-05/x_pos + y_pos: BPM_C20-05/y_pos - type: pyaml.bpm.bpm name: BPM_C20-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C20-06/x_pos + y_pos: BPM_C20-06/y_pos - type: pyaml.bpm.bpm name: BPM_C20-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C20-07/x_pos + y_pos: BPM_C20-07/y_pos - type: pyaml.bpm.bpm name: BPM_C20-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C20-08/x_pos + y_pos: BPM_C20-08/y_pos - type: pyaml.bpm.bpm name: BPM_C20-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C20-09/x_pos + y_pos: BPM_C20-09/y_pos - type: pyaml.bpm.bpm name: BPM_C20-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C20-10/x_pos + y_pos: BPM_C20-10/y_pos - type: pyaml.bpm.bpm name: BPM_C21-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C21-01/x_pos + y_pos: BPM_C21-01/y_pos - type: pyaml.bpm.bpm name: BPM_C21-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C21-02/x_pos + y_pos: BPM_C21-02/y_pos - type: pyaml.bpm.bpm name: BPM_C21-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C21-03/x_pos + y_pos: BPM_C21-03/y_pos - type: pyaml.bpm.bpm name: BPM_C21-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C21-04/x_pos + y_pos: BPM_C21-04/y_pos - type: pyaml.bpm.bpm name: BPM_C21-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C21-05/x_pos + y_pos: BPM_C21-05/y_pos - type: pyaml.bpm.bpm name: BPM_C21-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C21-06/x_pos + y_pos: BPM_C21-06/y_pos - type: pyaml.bpm.bpm name: BPM_C21-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C21-07/x_pos + y_pos: BPM_C21-07/y_pos - type: pyaml.bpm.bpm name: BPM_C21-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C21-08/x_pos + y_pos: BPM_C21-08/y_pos - type: pyaml.bpm.bpm name: BPM_C21-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C21-09/x_pos + y_pos: BPM_C21-09/y_pos - type: pyaml.bpm.bpm name: BPM_C21-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C21-10/x_pos + y_pos: BPM_C21-10/y_pos - type: pyaml.bpm.bpm name: BPM_C22-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C22-01/x_pos + y_pos: BPM_C22-01/y_pos - type: pyaml.bpm.bpm name: BPM_C22-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C22-02/x_pos + y_pos: BPM_C22-02/y_pos - type: pyaml.bpm.bpm name: BPM_C22-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C22-03/x_pos + y_pos: BPM_C22-03/y_pos - type: pyaml.bpm.bpm name: BPM_C22-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C22-04/x_pos + y_pos: BPM_C22-04/y_pos - type: pyaml.bpm.bpm name: BPM_C22-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C22-05/x_pos + y_pos: BPM_C22-05/y_pos - type: pyaml.bpm.bpm name: BPM_C22-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C22-06/x_pos + y_pos: BPM_C22-06/y_pos - type: pyaml.bpm.bpm name: BPM_C22-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C22-07/x_pos + y_pos: BPM_C22-07/y_pos - type: pyaml.bpm.bpm name: BPM_C22-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C22-08/x_pos + y_pos: BPM_C22-08/y_pos - type: pyaml.bpm.bpm name: BPM_C22-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C22-09/x_pos + y_pos: BPM_C22-09/y_pos - type: pyaml.bpm.bpm name: BPM_C22-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C22-10/x_pos + y_pos: BPM_C22-10/y_pos - type: pyaml.bpm.bpm name: BPM_C23-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C23-01/x_pos + y_pos: BPM_C23-01/y_pos - type: pyaml.bpm.bpm name: BPM_C23-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C23-02/x_pos + y_pos: BPM_C23-02/y_pos - type: pyaml.bpm.bpm name: BPM_C23-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C23-03/x_pos + y_pos: BPM_C23-03/y_pos - type: pyaml.bpm.bpm name: BPM_C23-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C23-04/x_pos + y_pos: BPM_C23-04/y_pos - type: pyaml.bpm.bpm name: BPM_C23-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C23-05/x_pos + y_pos: BPM_C23-05/y_pos - type: pyaml.bpm.bpm name: BPM_C23-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C23-06/x_pos + y_pos: BPM_C23-06/y_pos - type: pyaml.bpm.bpm name: BPM_C23-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C23-07/x_pos + y_pos: BPM_C23-07/y_pos - type: pyaml.bpm.bpm name: BPM_C23-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C23-08/x_pos + y_pos: BPM_C23-08/y_pos - type: pyaml.bpm.bpm name: BPM_C23-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C23-09/x_pos + y_pos: BPM_C23-09/y_pos - type: pyaml.bpm.bpm name: BPM_C23-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C23-10/x_pos + y_pos: BPM_C23-10/y_pos - type: pyaml.bpm.bpm name: BPM_C24-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C24-01/x_pos + y_pos: BPM_C24-01/y_pos - type: pyaml.bpm.bpm name: BPM_C24-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C24-02/x_pos + y_pos: BPM_C24-02/y_pos - type: pyaml.bpm.bpm name: BPM_C24-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C24-03/x_pos + y_pos: BPM_C24-03/y_pos - type: pyaml.bpm.bpm name: BPM_C24-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C24-04/x_pos + y_pos: BPM_C24-04/y_pos - type: pyaml.bpm.bpm name: BPM_C24-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C24-05/x_pos + y_pos: BPM_C24-05/y_pos - type: pyaml.bpm.bpm name: BPM_C24-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C24-06/x_pos + y_pos: BPM_C24-06/y_pos - type: pyaml.bpm.bpm name: BPM_C24-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C24-07/x_pos + y_pos: BPM_C24-07/y_pos - type: pyaml.bpm.bpm name: BPM_C24-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C24-08/x_pos + y_pos: BPM_C24-08/y_pos - type: pyaml.bpm.bpm name: BPM_C24-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C24-09/x_pos + y_pos: BPM_C24-09/y_pos - type: pyaml.bpm.bpm name: BPM_C24-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C24-10/x_pos + y_pos: BPM_C24-10/y_pos - type: pyaml.bpm.bpm name: BPM_C25-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C25-01/x_pos + y_pos: BPM_C25-01/y_pos - type: pyaml.bpm.bpm name: BPM_C25-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C25-02/x_pos + y_pos: BPM_C25-02/y_pos - type: pyaml.bpm.bpm name: BPM_C25-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C25-03/x_pos + y_pos: BPM_C25-03/y_pos - type: pyaml.bpm.bpm name: BPM_C25-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C25-04/x_pos + y_pos: BPM_C25-04/y_pos - type: pyaml.bpm.bpm name: BPM_C25-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C25-05/x_pos + y_pos: BPM_C25-05/y_pos - type: pyaml.bpm.bpm name: BPM_C25-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C25-06/x_pos + y_pos: BPM_C25-06/y_pos - type: pyaml.bpm.bpm name: BPM_C25-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C25-07/x_pos + y_pos: BPM_C25-07/y_pos - type: pyaml.bpm.bpm name: BPM_C25-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C25-08/x_pos + y_pos: BPM_C25-08/y_pos - type: pyaml.bpm.bpm name: BPM_C25-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C25-09/x_pos + y_pos: BPM_C25-09/y_pos - type: pyaml.bpm.bpm name: BPM_C25-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C25-10/x_pos + y_pos: BPM_C25-10/y_pos - type: pyaml.bpm.bpm name: BPM_C26-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C26-01/x_pos + y_pos: BPM_C26-01/y_pos - type: pyaml.bpm.bpm name: BPM_C26-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C26-02/x_pos + y_pos: BPM_C26-02/y_pos - type: pyaml.bpm.bpm name: BPM_C26-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C26-03/x_pos + y_pos: BPM_C26-03/y_pos - type: pyaml.bpm.bpm name: BPM_C26-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C26-04/x_pos + y_pos: BPM_C26-04/y_pos - type: pyaml.bpm.bpm name: BPM_C26-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C26-05/x_pos + y_pos: BPM_C26-05/y_pos - type: pyaml.bpm.bpm name: BPM_C26-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C26-06/x_pos + y_pos: BPM_C26-06/y_pos - type: pyaml.bpm.bpm name: BPM_C26-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C26-07/x_pos + y_pos: BPM_C26-07/y_pos - type: pyaml.bpm.bpm name: BPM_C26-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C26-08/x_pos + y_pos: BPM_C26-08/y_pos - type: pyaml.bpm.bpm name: BPM_C26-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C26-09/x_pos + y_pos: BPM_C26-09/y_pos - type: pyaml.bpm.bpm name: BPM_C26-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C26-10/x_pos + y_pos: BPM_C26-10/y_pos - type: pyaml.bpm.bpm name: BPM_C27-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C27-01/x_pos + y_pos: BPM_C27-01/y_pos - type: pyaml.bpm.bpm name: BPM_C27-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C27-02/x_pos + y_pos: BPM_C27-02/y_pos - type: pyaml.bpm.bpm name: BPM_C27-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C27-03/x_pos + y_pos: BPM_C27-03/y_pos - type: pyaml.bpm.bpm name: BPM_C27-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C27-04/x_pos + y_pos: BPM_C27-04/y_pos - type: pyaml.bpm.bpm name: BPM_C27-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C27-05/x_pos + y_pos: BPM_C27-05/y_pos - type: pyaml.bpm.bpm name: BPM_C27-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C27-06/x_pos + y_pos: BPM_C27-06/y_pos - type: pyaml.bpm.bpm name: BPM_C27-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C27-07/x_pos + y_pos: BPM_C27-07/y_pos - type: pyaml.bpm.bpm name: BPM_C27-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C27-08/x_pos + y_pos: BPM_C27-08/y_pos - type: pyaml.bpm.bpm name: BPM_C27-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C27-09/x_pos + y_pos: BPM_C27-09/y_pos - type: pyaml.bpm.bpm name: BPM_C27-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C27-10/x_pos + y_pos: BPM_C27-10/y_pos - type: pyaml.bpm.bpm name: BPM_C28-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C28-01/x_pos + y_pos: BPM_C28-01/y_pos - type: pyaml.bpm.bpm name: BPM_C28-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C28-02/x_pos + y_pos: BPM_C28-02/y_pos - type: pyaml.bpm.bpm name: BPM_C28-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C28-03/x_pos + y_pos: BPM_C28-03/y_pos - type: pyaml.bpm.bpm name: BPM_C28-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C28-04/x_pos + y_pos: BPM_C28-04/y_pos - type: pyaml.bpm.bpm name: BPM_C28-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C28-05/x_pos + y_pos: BPM_C28-05/y_pos - type: pyaml.bpm.bpm name: BPM_C28-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C28-06/x_pos + y_pos: BPM_C28-06/y_pos - type: pyaml.bpm.bpm name: BPM_C28-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C28-07/x_pos + y_pos: BPM_C28-07/y_pos - type: pyaml.bpm.bpm name: BPM_C28-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C28-08/x_pos + y_pos: BPM_C28-08/y_pos - type: pyaml.bpm.bpm name: BPM_C28-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C28-09/x_pos + y_pos: BPM_C28-09/y_pos - type: pyaml.bpm.bpm name: BPM_C28-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C28-10/x_pos + y_pos: BPM_C28-10/y_pos - type: pyaml.bpm.bpm name: BPM_C29-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C29-01/x_pos + y_pos: BPM_C29-01/y_pos - type: pyaml.bpm.bpm name: BPM_C29-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C29-02/x_pos + y_pos: BPM_C29-02/y_pos - type: pyaml.bpm.bpm name: BPM_C29-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C29-03/x_pos + y_pos: BPM_C29-03/y_pos - type: pyaml.bpm.bpm name: BPM_C29-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C29-04/x_pos + y_pos: BPM_C29-04/y_pos - type: pyaml.bpm.bpm name: BPM_C29-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C29-05/x_pos + y_pos: BPM_C29-05/y_pos - type: pyaml.bpm.bpm name: BPM_C29-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C29-06/x_pos + y_pos: BPM_C29-06/y_pos - type: pyaml.bpm.bpm name: BPM_C29-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C29-07/x_pos + y_pos: BPM_C29-07/y_pos - type: pyaml.bpm.bpm name: BPM_C29-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C29-08/x_pos + y_pos: BPM_C29-08/y_pos - type: pyaml.bpm.bpm name: BPM_C29-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C29-09/x_pos + y_pos: BPM_C29-09/y_pos - type: pyaml.bpm.bpm name: BPM_C29-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C29-10/x_pos + y_pos: BPM_C29-10/y_pos - type: pyaml.bpm.bpm name: BPM_C30-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C30-01/x_pos + y_pos: BPM_C30-01/y_pos - type: pyaml.bpm.bpm name: BPM_C30-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C30-02/x_pos + y_pos: BPM_C30-02/y_pos - type: pyaml.bpm.bpm name: BPM_C30-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C30-03/x_pos + y_pos: BPM_C30-03/y_pos - type: pyaml.bpm.bpm name: BPM_C30-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C30-04/x_pos + y_pos: BPM_C30-04/y_pos - type: pyaml.bpm.bpm name: BPM_C30-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C30-05/x_pos + y_pos: BPM_C30-05/y_pos - type: pyaml.bpm.bpm name: BPM_C30-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C30-06/x_pos + y_pos: BPM_C30-06/y_pos - type: pyaml.bpm.bpm name: BPM_C30-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C30-07/x_pos + y_pos: BPM_C30-07/y_pos - type: pyaml.bpm.bpm name: BPM_C30-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C30-08/x_pos + y_pos: BPM_C30-08/y_pos - type: pyaml.bpm.bpm name: BPM_C30-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C30-09/x_pos + y_pos: BPM_C30-09/y_pos - type: pyaml.bpm.bpm name: BPM_C30-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C30-10/x_pos + y_pos: BPM_C30-10/y_pos - type: pyaml.bpm.bpm name: BPM_C31-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C31-01/x_pos + y_pos: BPM_C31-01/y_pos - type: pyaml.bpm.bpm name: BPM_C31-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C31-02/x_pos + y_pos: BPM_C31-02/y_pos - type: pyaml.bpm.bpm name: BPM_C31-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C31-03/x_pos + y_pos: BPM_C31-03/y_pos - type: pyaml.bpm.bpm name: BPM_C31-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C31-04/x_pos + y_pos: BPM_C31-04/y_pos - type: pyaml.bpm.bpm name: BPM_C31-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C31-05/x_pos + y_pos: BPM_C31-05/y_pos - type: pyaml.bpm.bpm name: BPM_C31-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C31-06/x_pos + y_pos: BPM_C31-06/y_pos - type: pyaml.bpm.bpm name: BPM_C31-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C31-07/x_pos + y_pos: BPM_C31-07/y_pos - type: pyaml.bpm.bpm name: BPM_C31-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C31-08/x_pos + y_pos: BPM_C31-08/y_pos - type: pyaml.bpm.bpm name: BPM_C31-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C31-09/x_pos + y_pos: BPM_C31-09/y_pos - type: pyaml.bpm.bpm name: BPM_C31-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C31-10/x_pos + y_pos: BPM_C31-10/y_pos - type: pyaml.bpm.bpm name: BPM_C32-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C32-01/x_pos + y_pos: BPM_C32-01/y_pos - type: pyaml.bpm.bpm name: BPM_C32-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C32-02/x_pos + y_pos: BPM_C32-02/y_pos - type: pyaml.bpm.bpm name: BPM_C32-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C32-03/x_pos + y_pos: BPM_C32-03/y_pos - type: pyaml.bpm.bpm name: BPM_C32-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C32-04/x_pos + y_pos: BPM_C32-04/y_pos - type: pyaml.bpm.bpm name: BPM_C32-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C32-05/x_pos + y_pos: BPM_C32-05/y_pos - type: pyaml.bpm.bpm name: BPM_C32-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C32-06/x_pos + y_pos: BPM_C32-06/y_pos - type: pyaml.bpm.bpm name: BPM_C32-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C32-07/x_pos + y_pos: BPM_C32-07/y_pos - type: pyaml.bpm.bpm name: BPM_C32-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C32-08/x_pos + y_pos: BPM_C32-08/y_pos - type: pyaml.bpm.bpm name: BPM_C32-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C32-09/x_pos + y_pos: BPM_C32-09/y_pos - type: pyaml.bpm.bpm name: BPM_C32-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C32-10/x_pos + y_pos: BPM_C32-10/y_pos - type: pyaml.bpm.bpm name: BPM_C01-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C01-01/x_pos + y_pos: BPM_C01-01/y_pos - type: pyaml.bpm.bpm name: BPM_C01-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C01-02/x_pos + y_pos: BPM_C01-02/y_pos - type: pyaml.bpm.bpm name: BPM_C01-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C01-03/x_pos + y_pos: BPM_C01-03/y_pos - type: pyaml.bpm.bpm name: BPM_C01-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C01-04/x_pos + y_pos: BPM_C01-04/y_pos - type: pyaml.bpm.bpm name: BPM_C01-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C01-05/x_pos + y_pos: BPM_C01-05/y_pos - type: pyaml.bpm.bpm name: BPM_C01-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C01-06/x_pos + y_pos: BPM_C01-06/y_pos - type: pyaml.bpm.bpm name: BPM_C01-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C01-07/x_pos + y_pos: BPM_C01-07/y_pos - type: pyaml.bpm.bpm name: BPM_C01-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C01-08/x_pos + y_pos: BPM_C01-08/y_pos - type: pyaml.bpm.bpm name: BPM_C01-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C01-09/x_pos + y_pos: BPM_C01-09/y_pos - type: pyaml.bpm.bpm name: BPM_C01-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C01-10/x_pos + y_pos: BPM_C01-10/y_pos - type: pyaml.bpm.bpm name: BPM_C02-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C02-01/x_pos + y_pos: BPM_C02-01/y_pos - type: pyaml.bpm.bpm name: BPM_C02-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C02-02/x_pos + y_pos: BPM_C02-02/y_pos - type: pyaml.bpm.bpm name: BPM_C02-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C02-03/x_pos + y_pos: BPM_C02-03/y_pos - type: pyaml.bpm.bpm name: BPM_C02-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C02-04/x_pos + y_pos: BPM_C02-04/y_pos - type: pyaml.bpm.bpm name: BPM_C02-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C02-05/x_pos + y_pos: BPM_C02-05/y_pos - type: pyaml.bpm.bpm name: BPM_C02-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C02-06/x_pos + y_pos: BPM_C02-06/y_pos - type: pyaml.bpm.bpm name: BPM_C02-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C02-07/x_pos + y_pos: BPM_C02-07/y_pos - type: pyaml.bpm.bpm name: BPM_C02-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C02-08/x_pos + y_pos: BPM_C02-08/y_pos - type: pyaml.bpm.bpm name: BPM_C02-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C02-09/x_pos + y_pos: BPM_C02-09/y_pos - type: pyaml.bpm.bpm name: BPM_C02-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C02-10/x_pos + y_pos: BPM_C02-10/y_pos - type: pyaml.bpm.bpm name: BPM_C03-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C03-01/x_pos + y_pos: BPM_C03-01/y_pos - type: pyaml.bpm.bpm name: BPM_C03-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C03-02/x_pos + y_pos: BPM_C03-02/y_pos - type: pyaml.bpm.bpm name: BPM_C03-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C03-03/x_pos + y_pos: BPM_C03-03/y_pos - type: pyaml.bpm.bpm name: BPM_C03-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C03-04/x_pos + y_pos: BPM_C03-04/y_pos - type: pyaml.bpm.bpm name: BPM_C03-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C03-05/x_pos + y_pos: BPM_C03-05/y_pos - type: pyaml.bpm.bpm name: BPM_C03-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C03-06/x_pos + y_pos: BPM_C03-06/y_pos - type: pyaml.bpm.bpm name: BPM_C03-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C03-07/x_pos + y_pos: BPM_C03-07/y_pos - type: pyaml.bpm.bpm name: BPM_C03-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C03-08/x_pos + y_pos: BPM_C03-08/y_pos - type: pyaml.bpm.bpm name: BPM_C03-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C03-09/x_pos + y_pos: BPM_C03-09/y_pos - type: pyaml.bpm.bpm name: BPM_C03-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C03-10/x_pos + y_pos: BPM_C03-10/y_pos control_system_catalogs: - type: pyaml.configuration.catalog name: live_catalog diff --git a/tests/config/bad_conf_duplicate_2.yaml b/tests/config/bad_conf_duplicate_2.yaml index 4195e548..bc3d0966 100644 --- a/tests/config/bad_conf_duplicate_2.yaml +++ b/tests/config/bad_conf_duplicate_2.yaml @@ -24,20 +24,20 @@ devices: name: BPM_C04-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C04-04/x_pos + y_pos: BPM_C04-04/y_pos - type: pyaml.bpm.bpm name: BPM_C04-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C04-05/x_pos + y_pos: BPM_C04-05/y_pos - type: pyaml.bpm.bpm name: BPM_C04-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C04-06/x_pos + y_pos: BPM_C04-06/y_pos control_system_catalogs: - type: pyaml.configuration.catalog name: live_catalog diff --git a/tests/config/bad_conf_duplicate_3.yaml b/tests/config/bad_conf_duplicate_3.yaml index 8ebeadf6..9985f41b 100644 --- a/tests/config/bad_conf_duplicate_3.yaml +++ b/tests/config/bad_conf_duplicate_3.yaml @@ -23,26 +23,26 @@ devices: name: BPM_C04-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C04-04/x_pos + y_pos: BPM_C04-04/y_pos - type: pyaml.bpm.bpm name: BPM_C04-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C04-05/x_pos + y_pos: BPM_C04-05/y_pos - type: pyaml.bpm.bpm name: BPM_C04-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C04-06/x_pos + y_pos: BPM_C04-06/y_pos - type: pyaml.bpm.bpm # duplicate device name: BPM_C04-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C04-06/x_pos + y_pos: BPM_C04-06/y_pos control_system_catalogs: - type: pyaml.configuration.catalog name: live_catalog diff --git a/tests/config/bpms.yaml b/tests/config/bpms.yaml index d15d3d4f..6ad09adb 100644 --- a/tests/config/bpms.yaml +++ b/tests/config/bpms.yaml @@ -16,30 +16,30 @@ devices: name: BPM_C01-01 model: type: pyaml.bpm.bpm_tiltoffset_model - x_pos: x_pos - y_pos: y_pos - tilt: tilt - x_offset: x_offset - y_offset: y_offset + x_pos: BPM_C01-01/x_pos + y_pos: BPM_C01-01/y_pos + tilt: BPM_C01-01/tilt + x_offset: BPM_C01-01/x_offset + y_offset: BPM_C01-01/y_offset - type: pyaml.bpm.bpm name: BPM_C01-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C01-02/x_pos + y_pos: BPM_C01-02/y_pos - type: pyaml.bpm.bpm name: BPM_C01-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C01-03/x_pos + y_pos: BPM_C01-03/y_pos - type: pyaml.bpm.bpm name: BPM_C01-04 model: type: pyaml.bpm.bpm_simple_model x_pos_index: 0 y_pos_index: 1 - positions: positions + positions: BPM_C01-04/positions - type: pyaml.magnet.cfm_magnet name: SH1A-C01 #Name of the element in the lattice model mapping: diff --git a/tests/config/sr.yaml b/tests/config/sr.yaml index 63311dab..9cea0269 100644 --- a/tests/config/sr.yaml +++ b/tests/config/sr.yaml @@ -54,14 +54,14 @@ devices: name: BPM_C04-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C04-01/x_pos + y_pos: BPM_C04-01/y_pos - type: pyaml.bpm.bpm name: BPM_C04-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: x_pos - y_pos: y_pos + x_pos: BPM_C04-02/x_pos + y_pos: BPM_C04-02/y_pos control_system_catalogs: - type: pyaml.configuration.catalog name: live_catalog From 3ac3c2e8c2fe021c0ac066a3ce91be6942470e4c Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Wed, 18 Feb 2026 10:01:24 +0100 Subject: [PATCH 08/14] First catalog tests --- tests/test_catalog.py | 231 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 231 insertions(+) create mode 100644 tests/test_catalog.py diff --git a/tests/test_catalog.py b/tests/test_catalog.py new file mode 100644 index 00000000..9eafb530 --- /dev/null +++ b/tests/test_catalog.py @@ -0,0 +1,231 @@ +import pytest + +from pyaml import PyAMLException +from pyaml.configuration.catalog import Catalog +from pyaml.configuration.catalog import ConfigModel as CatalogConfigModel +from pyaml.configuration.catalog_entry import ( + CatalogEntry, +) +from pyaml.configuration.catalog_entry import ( + ConfigModel as CatalogEntryConfigModel, +) +from pyaml.configuration.factory import Factory + + +def _build_ro_attr(attribute: str, unit: str = "mm"): + """Build a DeviceAccess using the Factory (requires tango-pyaml in tests).""" + return Factory.build_object( + { + "type": "tango.pyaml.attribute_read_only", + "attribute": attribute, + "unit": unit, + } + ) + + +@pytest.mark.parametrize( + "install_test_package", + [{"name": "tango-pyaml", "path": "tests/dummy_cs/tango-pyaml"}], + indirect=True, +) +def test_catalog_entry_requires_exactly_one_of_device_or_devices(install_test_package): + dev = _build_ro_attr("srdiag/bpm/c04-01/SA_HPosition") + + # neither device nor devices + with pytest.raises(ValueError, match="exactly one of 'device' or 'devices'"): + CatalogEntryConfigModel(reference="k1") + + # both device and devices + with pytest.raises(ValueError, match="exactly one of 'device' or 'devices'"): + CatalogEntryConfigModel(reference="k1", device=dev, devices=[dev]) + + # devices is empty -> treated as "not provided" => invalid + with pytest.raises(ValueError, match="exactly one of 'device' or 'devices'"): + CatalogEntryConfigModel(reference="k1", devices=[]) + + +@pytest.mark.parametrize( + "install_test_package", + [{"name": "tango-pyaml", "path": "tests/dummy_cs/tango-pyaml"}], + indirect=True, +) +def test_catalog_config_model_rejects_duplicate_references(install_test_package): + dev1 = _build_ro_attr("srdiag/bpm/c04-01/SA_HPosition") + dev2 = _build_ro_attr("srdiag/bpm/c04-01/SA_VPosition") + + e1 = CatalogEntry(CatalogEntryConfigModel(reference="BPM/x_pos", device=dev1)) + e2 = CatalogEntry(CatalogEntryConfigModel(reference="BPM/x_pos", device=dev2)) + + with pytest.raises(ValueError, match="Duplicate catalog reference"): + CatalogConfigModel(name="live_catalog", refs=[e1, e2]) + + +@pytest.mark.parametrize( + "install_test_package", + [{"name": "tango-pyaml", "path": "tests/dummy_cs/tango-pyaml"}], + indirect=True, +) +def test_catalog_get_get_one_get_many(install_test_package): + dev = _build_ro_attr("srdiag/bpm/c04-01/SA_HPosition") + entry = CatalogEntry( + CatalogEntryConfigModel(reference="BPM_C04-01/x_pos", device=dev) + ) + cat = Catalog(CatalogConfigModel(name="live_catalog", refs=[entry])) + + # get / get_one on a single-device entry + assert cat.get("BPM_C04-01/x_pos") is dev + assert cat.get_one("BPM_C04-01/x_pos") is dev + + # get_many on a single-device entry -> error + with pytest.raises(PyAMLException, match="is single-device; use get_one"): + cat.get_many("BPM_C04-01/x_pos") + + # missing reference -> error + with pytest.raises(PyAMLException, match="not found"): + cat.get("does/not/exist") + + +@pytest.mark.parametrize( + "install_test_package", + [{"name": "tango-pyaml", "path": "tests/dummy_cs/tango-pyaml"}], + indirect=True, +) +def test_catalog_multi_device_get_many_and_get_one_error(install_test_package): + dev1 = _build_ro_attr("srdiag/bpm/c04-01/SA_HPosition") + dev2 = _build_ro_attr("srdiag/bpm/c04-01/SA_VPosition") + + entry = CatalogEntry( + CatalogEntryConfigModel(reference="BPM_C04-01/positions", devices=[dev1, dev2]) + ) + cat = Catalog(CatalogConfigModel(name="live_catalog", refs=[entry])) + + many = cat.get_many("BPM_C04-01/positions") + assert many == [dev1, dev2] + + # get_one on a multi-device entry -> error + with pytest.raises(PyAMLException, match="is multi-device; use get_many"): + cat.get_one("BPM_C04-01/positions") + + +@pytest.mark.parametrize( + "install_test_package", + [{"name": "tango-pyaml", "path": "tests/dummy_cs/tango-pyaml"}], + indirect=True, +) +def test_catalog_find_and_find_by_prefix(install_test_package): + devx1 = _build_ro_attr("srdiag/bpm/c04-01/SA_HPosition") + devy1 = _build_ro_attr("srdiag/bpm/c04-01/SA_VPosition") + devx2 = _build_ro_attr("srdiag/bpm/c04-02/SA_HPosition") + + cat = Catalog( + CatalogConfigModel( + name="live_catalog", + refs=[ + CatalogEntry( + CatalogEntryConfigModel(reference="BPM_C04-01/x_pos", device=devx1) + ), + CatalogEntry( + CatalogEntryConfigModel(reference="BPM_C04-01/y_pos", device=devy1) + ), + CatalogEntry( + CatalogEntryConfigModel(reference="BPM_C04-02/x_pos", device=devx2) + ), + ], + ) + ) + + # regex search + res = cat.find(r"BPM_C04-01/.*_pos$") + assert set(res.keys()) == {"BPM_C04-01/x_pos", "BPM_C04-01/y_pos"} + + # prefix search (literal prefix escaped internally) + res2 = cat.find_by_prefix("BPM_C04-01/") + assert set(res2.keys()) == {"BPM_C04-01/x_pos", "BPM_C04-01/y_pos"} + + +@pytest.mark.parametrize( + "install_test_package", + [{"name": "tango-pyaml", "path": "tests/dummy_cs/tango-pyaml"}], + indirect=True, +) +def test_catalog_get_sub_catalog_regex(install_test_package): + devx1 = _build_ro_attr("srdiag/bpm/c04-01/SA_HPosition") + devy1 = _build_ro_attr("srdiag/bpm/c04-01/SA_VPosition") + devx2 = _build_ro_attr("srdiag/bpm/c04-02/SA_HPosition") + + cat = Catalog( + CatalogConfigModel( + name="live_catalog", + refs=[ + CatalogEntry( + CatalogEntryConfigModel(reference="BPM_C04-01/x_pos", device=devx1) + ), + CatalogEntry( + CatalogEntryConfigModel(reference="BPM_C04-01/y_pos", device=devy1) + ), + CatalogEntry( + CatalogEntryConfigModel(reference="BPM_C04-02/x_pos", device=devx2) + ), + ], + ) + ) + + sub = cat.get_sub_catalog(r"^BPM_C04-01/") + assert set(sub.keys()) == {"BPM_C04-01/x_pos", "BPM_C04-01/y_pos"} + assert sub.get_one("BPM_C04-01/x_pos") is devx1 + + +@pytest.mark.parametrize( + "install_test_package", + [{"name": "tango-pyaml", "path": "tests/dummy_cs/tango-pyaml"}], + indirect=True, +) +def test_catalog_get_sub_catalog_by_prefix_strips_prefix(install_test_package): + devx1 = _build_ro_attr("srdiag/bpm/c04-01/SA_HPosition") + devy1 = _build_ro_attr("srdiag/bpm/c04-01/SA_VPosition") + + cat = Catalog( + CatalogConfigModel( + name="live_catalog", + refs=[ + CatalogEntry( + CatalogEntryConfigModel(reference="BPM_C04-01/x_pos", device=devx1) + ), + CatalogEntry( + CatalogEntryConfigModel(reference="BPM_C04-01/y_pos", device=devy1) + ), + ], + ) + ) + + sub = cat.get_sub_catalog_by_prefix("BPM_C04-01/") + # Prefix must be removed in the returned catalog + assert set(sub.keys()) == {"x_pos", "y_pos"} + assert sub.get_one("x_pos") is devx1 + assert sub.get_one("y_pos") is devy1 + + # Removing the full key must fail (would produce an empty key) + with pytest.raises(PyAMLException, match="results in an empty reference"): + cat.get_sub_catalog_by_prefix("BPM_C04-01/x_pos") + + +@pytest.mark.parametrize( + "install_test_package", + [{"name": "tango-pyaml", "path": "tests/dummy_cs/tango-pyaml"}], + indirect=True, +) +def test_catalog_has_reference(install_test_package): + dev = _build_ro_attr("srdiag/bpm/c04-01/SA_HPosition") + cat = Catalog( + CatalogConfigModel( + name="live_catalog", + refs=[ + CatalogEntry( + CatalogEntryConfigModel(reference="BPM_C04-01/x_pos", device=dev) + ), + ], + ) + ) + + assert cat.has_reference("BPM_C04-01/x_pos") is True + assert cat.has_reference("BPM_C04-01/y_pos") is False From c082d016732ec95933678e507e4fccc84c4f382e Mon Sep 17 00:00:00 2001 From: PONS Date: Wed, 18 Feb 2026 10:18:08 +0100 Subject: [PATCH 09/14] Adedd unit test for BPM aggregator --- tests/dummy_cs/tango-pyaml/tango/pyaml/attribute.py | 3 ++- tests/test_bpm_controlsystem.py | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/tests/dummy_cs/tango-pyaml/tango/pyaml/attribute.py b/tests/dummy_cs/tango-pyaml/tango/pyaml/attribute.py index a7e4482a..bc36ae25 100644 --- a/tests/dummy_cs/tango-pyaml/tango/pyaml/attribute.py +++ b/tests/dummy_cs/tango-pyaml/tango/pyaml/attribute.py @@ -7,6 +7,7 @@ PYAMLCLASS: str = "Attribute" +import numpy as np class ConfigModel(BaseModel): model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") @@ -31,7 +32,7 @@ def __init__(self, cfg: ConfigModel, is_array=False): def set_array(self, is_array: bool): self._is_array = is_array - self._cache = 0.0 if not is_array else [0.0, 1.0] + self._cache = 0.0 if not is_array else np.array([0.0, 1.0]) def name(self) -> str: return self._setpoint diff --git a/tests/test_bpm_controlsystem.py b/tests/test_bpm_controlsystem.py index 83c64b98..f480ec72 100644 --- a/tests/test_bpm_controlsystem.py +++ b/tests/test_bpm_controlsystem.py @@ -2,7 +2,7 @@ import pytest from pyaml.accelerator import Accelerator - +from pyaml.arrays.bpm_array import BPMArray @pytest.mark.parametrize( "install_test_package", @@ -60,3 +60,7 @@ def test_controlsystem_bpm_position_indexed(install_test_package): bpm = sr.live.get_bpm("BPM_C01-04") assert np.allclose(bpm.positions.get(), np.array([0.0, 1.0])) + + # Test aggregator + bpms = BPMArray("", [sr.live.get_bpm("BPM_C01-04")] ) + assert np.allclose(bpms.positions.get()[0], np.array([0.0, 1.0])) From 03cfce5b32efa7aecf3788c74adec5cf75af9b65 Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Wed, 18 Feb 2026 10:32:35 +0100 Subject: [PATCH 10/14] Correction for indexed BPMs. --- pyaml/control/controlsystem.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pyaml/control/controlsystem.py b/pyaml/control/controlsystem.py index 3b36cd33..7d68f6ab 100644 --- a/pyaml/control/controlsystem.py +++ b/pyaml/control/controlsystem.py @@ -149,7 +149,8 @@ def create_bpm_aggregators(self, bpms: list[BPM]) -> list[ScalarAggregator]: vIdx = [] allHV = [] for b in bpms: - devs = self.attach_array(b.model.get_pos_devices()) + positions_device = self._catalog.get_one(b.model.get_positions_device()) + devs = self.attach_array([positions_device, positions_device]) devH = devs[0] devV = devs[1] if devH not in allH: From 7c364b76580eae8d1207cc9ce5fabc6967c0e553 Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Wed, 18 Feb 2026 10:35:39 +0100 Subject: [PATCH 11/14] Ruff corrections --- tests/dummy_cs/tango-pyaml/tango/pyaml/attribute.py | 2 +- tests/test_bpm_controlsystem.py | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/dummy_cs/tango-pyaml/tango/pyaml/attribute.py b/tests/dummy_cs/tango-pyaml/tango/pyaml/attribute.py index bc36ae25..4ca3cbb3 100644 --- a/tests/dummy_cs/tango-pyaml/tango/pyaml/attribute.py +++ b/tests/dummy_cs/tango-pyaml/tango/pyaml/attribute.py @@ -1,5 +1,6 @@ from typing import Optional, Tuple +import numpy as np from pydantic import BaseModel, ConfigDict from pyaml.control.deviceaccess import DeviceAccess @@ -7,7 +8,6 @@ PYAMLCLASS: str = "Attribute" -import numpy as np class ConfigModel(BaseModel): model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") diff --git a/tests/test_bpm_controlsystem.py b/tests/test_bpm_controlsystem.py index f480ec72..00d494da 100644 --- a/tests/test_bpm_controlsystem.py +++ b/tests/test_bpm_controlsystem.py @@ -4,6 +4,7 @@ from pyaml.accelerator import Accelerator from pyaml.arrays.bpm_array import BPMArray + @pytest.mark.parametrize( "install_test_package", [{"name": "tango-pyaml", "path": "tests/dummy_cs/tango-pyaml"}], @@ -62,5 +63,5 @@ def test_controlsystem_bpm_position_indexed(install_test_package): assert np.allclose(bpm.positions.get(), np.array([0.0, 1.0])) # Test aggregator - bpms = BPMArray("", [sr.live.get_bpm("BPM_C01-04")] ) + bpms = BPMArray("", [sr.live.get_bpm("BPM_C01-04")]) assert np.allclose(bpms.positions.get()[0], np.array([0.0, 1.0])) From 5435bc20e521e186f8a709e554616273dff46fad Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Thu, 19 Feb 2026 17:42:19 +0100 Subject: [PATCH 12/14] Suppression of the "positions" field. Using the x_pos and y_pos with the same value instead. --- pyaml/bpm/bpm_model.py | 12 ----------- pyaml/bpm/bpm_simple_model.py | 12 ----------- pyaml/bpm/bpm_tiltoffset_model.py | 1 - pyaml/control/controlsystem.py | 33 ++++++++++++------------------- tests/config/bpms.yaml | 3 ++- 5 files changed, 15 insertions(+), 46 deletions(-) diff --git a/pyaml/bpm/bpm_model.py b/pyaml/bpm/bpm_model.py index 598b4da2..5ef6c166 100644 --- a/pyaml/bpm/bpm_model.py +++ b/pyaml/bpm/bpm_model.py @@ -13,18 +13,6 @@ class BPMModel(metaclass=ABCMeta): tilts. """ - @abstractmethod - def get_positions_device(self) -> str | None: - """ - Get device handles used for position reading - - Returns - ------- - str | None - h and v positions naming - """ - pass - @abstractmethod def get_x_pos_device(self) -> str | None: """ diff --git a/pyaml/bpm/bpm_simple_model.py b/pyaml/bpm/bpm_simple_model.py index 6e346d02..72a97502 100644 --- a/pyaml/bpm/bpm_simple_model.py +++ b/pyaml/bpm/bpm_simple_model.py @@ -36,7 +36,6 @@ class ConfigModel(BaseModel): y_pos_index: int | None = None x_pos: str = None y_pos: str = None - positions: str = None class BPMSimpleModel(BPMModel): @@ -48,17 +47,6 @@ class BPMSimpleModel(BPMModel): def __init__(self, cfg: ConfigModel): self._cfg = cfg - def get_positions_device(self) -> str | None: - """ - Get device handles used for position reading - - Returns - ------- - str | None - h and v positions naming - """ - return self._cfg.positions - def get_x_pos_device(self) -> str | None: """ Get device handles used for position reading diff --git a/pyaml/bpm/bpm_tiltoffset_model.py b/pyaml/bpm/bpm_tiltoffset_model.py index 9fc99bdb..a3d69b80 100644 --- a/pyaml/bpm/bpm_tiltoffset_model.py +++ b/pyaml/bpm/bpm_tiltoffset_model.py @@ -35,7 +35,6 @@ class ConfigModel(BaseModel): y_pos_index: int | None = None x_pos: str = None y_pos: str = None - positions: str = None tilt: str = None x_offset: str = None y_offset: str = None diff --git a/pyaml/control/controlsystem.py b/pyaml/control/controlsystem.py index 7d68f6ab..4781569c 100644 --- a/pyaml/control/controlsystem.py +++ b/pyaml/control/controlsystem.py @@ -149,8 +149,9 @@ def create_bpm_aggregators(self, bpms: list[BPM]) -> list[ScalarAggregator]: vIdx = [] allHV = [] for b in bpms: - positions_device = self._catalog.get_one(b.model.get_positions_device()) - devs = self.attach_array([positions_device, positions_device]) + x_pos_device = self._catalog.get_one(b.model.get_x_pos_device()) + y_pos_device = self._catalog.get_one(b.model.get_y_pos_device()) + devs = self.attach_array([x_pos_device, y_pos_device]) devH = devs[0] devV = devs[1] if devH not in allH: @@ -267,24 +268,16 @@ def fill_device(self, elements: list[Element]): elif isinstance(e, BPM): model = e.model - if model.is_pos_indexed(): - hDev = ( - self._catalog.get_one(model.get_positions_device()) - if model.get_positions_device() is not None - else None - ) - vDev = hDev - else: - hDev = ( - self._catalog.get_one(model.get_x_pos_device()) - if model.get_x_pos_device() is not None - else None - ) - vDev = ( - self._catalog.get_one(model.get_y_pos_device()) - if model.get_y_pos_device() is not None - else None - ) + hDev = ( + self._catalog.get_one(model.get_x_pos_device()) + if model.get_x_pos_device() is not None + else None + ) + vDev = ( + self._catalog.get_one(model.get_y_pos_device()) + if model.get_y_pos_device() is not None + else None + ) tiltDev = ( self._catalog.get_one(model.get_tilt_device()) if model.get_tilt_device() is not None diff --git a/tests/config/bpms.yaml b/tests/config/bpms.yaml index 6ad09adb..3af67cbf 100644 --- a/tests/config/bpms.yaml +++ b/tests/config/bpms.yaml @@ -39,7 +39,8 @@ devices: type: pyaml.bpm.bpm_simple_model x_pos_index: 0 y_pos_index: 1 - positions: BPM_C01-04/positions + x_pos: BPM_C01-04/positions + y_pos: BPM_C01-04/positions - type: pyaml.magnet.cfm_magnet name: SH1A-C01 #Name of the element in the lattice model mapping: From 4d752b7411d66b0a5788bc548dffaa1591124226 Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Fri, 20 Feb 2026 15:39:33 +0100 Subject: [PATCH 13/14] Update of the soleil example configuration file --- examples/SOLEIL_examples/p.yaml | 3992 ++++++++++++++++++++----------- 1 file changed, 2530 insertions(+), 1462 deletions(-) diff --git a/examples/SOLEIL_examples/p.yaml b/examples/SOLEIL_examples/p.yaml index 5ec7993d..6c36dade 100644 --- a/examples/SOLEIL_examples/p.yaml +++ b/examples/SOLEIL_examples/p.yaml @@ -4480,14 +4480,8 @@ devices: name: BPM_001 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN01-SD/DG-EPOS/BPM.02/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN01-SD/DG-EPOS/BPM.02/y_pos - unit: mm + x_pos: AN01-SD/DG-EPOS/BPM.02/x_pos + y_pos: AN01-SD/DG-EPOS/BPM.02/y_pos - type: pyaml.magnet.cfm_magnet name: SH1_COR_001 mapping: @@ -4564,14 +4558,8 @@ devices: name: BPM_002 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN01-AR/DG-EPOS/BPM.03/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN01-AR/DG-EPOS/BPM.03/y_pos - unit: mm + x_pos: AN01-AR/DG-EPOS/BPM.03/x_pos + y_pos: AN01-AR/DG-EPOS/BPM.03/y_pos - type: pyaml.magnet.cfm_magnet name: SH3_VCOR_001 mapping: @@ -4646,14 +4634,8 @@ devices: name: BPM_003 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN01-AR/DG-EPOS/BPM.04/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN01-AR/DG-EPOS/BPM.04/y_pos - unit: mm + x_pos: AN01-AR/DG-EPOS/BPM.04/x_pos + y_pos: AN01-AR/DG-EPOS/BPM.04/y_pos - type: pyaml.magnet.cfm_magnet name: SXD11_VCOR_001 mapping: @@ -4737,14 +4719,8 @@ devices: name: BPM_004 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN01-AR/DG-EPOS/BPM.05/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN01-AR/DG-EPOS/BPM.05/y_pos - unit: mm + x_pos: AN01-AR/DG-EPOS/BPM.05/x_pos + y_pos: AN01-AR/DG-EPOS/BPM.05/y_pos - type: pyaml.magnet.cfm_magnet name: SXD1_VCOR_001 mapping: @@ -4828,14 +4804,8 @@ devices: name: BPM_005 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN01-AR/DG-EPOS/BPM.06/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN01-AR/DG-EPOS/BPM.06/y_pos - unit: mm + x_pos: AN01-AR/DG-EPOS/BPM.06/x_pos + y_pos: AN01-AR/DG-EPOS/BPM.06/y_pos - type: pyaml.magnet.cfm_magnet name: SXD13_VCOR_001 mapping: @@ -4919,14 +4889,8 @@ devices: name: BPM_006 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN01-AR/DG-EPOS/BPM.07/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN01-AR/DG-EPOS/BPM.07/y_pos - unit: mm + x_pos: AN01-AR/DG-EPOS/BPM.07/x_pos + y_pos: AN01-AR/DG-EPOS/BPM.07/y_pos - type: pyaml.magnet.cfm_magnet name: SXD1_VCOR_002 mapping: @@ -5010,14 +4974,8 @@ devices: name: BPM_007 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN01-AR/DG-EPOS/BPM.08/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN01-AR/DG-EPOS/BPM.08/y_pos - unit: mm + x_pos: AN01-AR/DG-EPOS/BPM.08/x_pos + y_pos: AN01-AR/DG-EPOS/BPM.08/y_pos - type: pyaml.magnet.cfm_magnet name: SXD1_VCOR_003 mapping: @@ -5117,14 +5075,8 @@ devices: name: BPM_008 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN01-AR/DG-EPOS/BPM.09/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN01-AR/DG-EPOS/BPM.09/y_pos - unit: mm + x_pos: AN01-AR/DG-EPOS/BPM.09/x_pos + y_pos: AN01-AR/DG-EPOS/BPM.09/y_pos - type: pyaml.magnet.cfm_magnet name: SH6_COR_001 mapping: @@ -5183,14 +5135,8 @@ devices: name: BPM_009 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN01-AR/DG-EPOS/BPM.10/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN01-AR/DG-EPOS/BPM.10/y_pos - unit: mm + x_pos: AN01-AR/DG-EPOS/BPM.10/x_pos + y_pos: AN01-AR/DG-EPOS/BPM.10/y_pos - type: pyaml.magnet.cfm_magnet name: SH4_COR_001 mapping: @@ -5235,26 +5181,14 @@ devices: name: BPM_010 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN02-SD/DG-EPOS/BPM.01/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN02-SD/DG-EPOS/BPM.01/y_pos - unit: mm + x_pos: AN02-SD/DG-EPOS/BPM.01/x_pos + y_pos: AN02-SD/DG-EPOS/BPM.01/y_pos - type: pyaml.bpm.bpm name: BPM_011 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN02-SD/DG-EPOS/BPM.02/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN02-SD/DG-EPOS/BPM.02/y_pos - unit: mm + x_pos: AN02-SD/DG-EPOS/BPM.02/x_pos + y_pos: AN02-SD/DG-EPOS/BPM.02/y_pos - type: pyaml.magnet.cfm_magnet name: OH4_QCORROCT_11_QT_001 mapping: @@ -5299,14 +5233,8 @@ devices: name: BPM_012 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN02-AR/DG-EPOS/BPM.03/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN02-AR/DG-EPOS/BPM.03/y_pos - unit: mm + x_pos: AN02-AR/DG-EPOS/BPM.03/x_pos + y_pos: AN02-AR/DG-EPOS/BPM.03/y_pos - type: pyaml.magnet.cfm_magnet name: OH5_QCORROCT_12_001 mapping: @@ -5410,14 +5338,8 @@ devices: name: BPM_013 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN02-AR/DG-EPOS/BPM.04/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN02-AR/DG-EPOS/BPM.04/y_pos - unit: mm + x_pos: AN02-AR/DG-EPOS/BPM.04/x_pos + y_pos: AN02-AR/DG-EPOS/BPM.04/y_pos - type: pyaml.magnet.cfm_magnet name: SXD21_VCOR_001 mapping: @@ -5501,14 +5423,8 @@ devices: name: BPM_014 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN02-AR/DG-EPOS/BPM.05/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN02-AR/DG-EPOS/BPM.05/y_pos - unit: mm + x_pos: AN02-AR/DG-EPOS/BPM.05/x_pos + y_pos: AN02-AR/DG-EPOS/BPM.05/y_pos - type: pyaml.magnet.cfm_magnet name: SXD2_VCOR_001 mapping: @@ -5608,14 +5524,8 @@ devices: name: BPM_015 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN02-AR/DG-EPOS/BPM.06/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN02-AR/DG-EPOS/BPM.06/y_pos - unit: mm + x_pos: AN02-AR/DG-EPOS/BPM.06/x_pos + y_pos: AN02-AR/DG-EPOS/BPM.06/y_pos - type: pyaml.magnet.cfm_magnet name: SH9_COR_001 mapping: @@ -5667,14 +5577,8 @@ devices: name: BPM_016 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN02-AR/DG-EPOS/BPM.07/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN02-AR/DG-EPOS/BPM.07/y_pos - unit: mm + x_pos: AN02-AR/DG-EPOS/BPM.07/x_pos + y_pos: AN02-AR/DG-EPOS/BPM.07/y_pos - type: pyaml.magnet.cfm_magnet name: SH7_COR_001 mapping: @@ -5719,26 +5623,14 @@ devices: name: BPM_017 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN03-SD/DG-EPOS/BPM.01/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN03-SD/DG-EPOS/BPM.01/y_pos - unit: mm + x_pos: AN03-SD/DG-EPOS/BPM.01/x_pos + y_pos: AN03-SD/DG-EPOS/BPM.01/y_pos - type: pyaml.bpm.bpm name: BPM_018 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN03-SD/DG-EPOS/BPM.02/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN03-SD/DG-EPOS/BPM.02/y_pos - unit: mm + x_pos: AN03-SD/DG-EPOS/BPM.02/x_pos + y_pos: AN03-SD/DG-EPOS/BPM.02/y_pos - type: pyaml.magnet.cfm_magnet name: OH7_QCORROCT_17_QT_001 mapping: @@ -5783,14 +5675,8 @@ devices: name: BPM_019 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN03-AR/DG-EPOS/BPM.03/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN03-AR/DG-EPOS/BPM.03/y_pos - unit: mm + x_pos: AN03-AR/DG-EPOS/BPM.03/x_pos + y_pos: AN03-AR/DG-EPOS/BPM.03/y_pos - type: pyaml.magnet.quadrupole name: QCORR_020 model: @@ -5887,14 +5773,8 @@ devices: name: BPM_020 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN03-AR/DG-EPOS/BPM.04/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN03-AR/DG-EPOS/BPM.04/y_pos - unit: mm + x_pos: AN03-AR/DG-EPOS/BPM.04/x_pos + y_pos: AN03-AR/DG-EPOS/BPM.04/y_pos - type: pyaml.magnet.cfm_magnet name: SXD31_VCOR_001 mapping: @@ -5978,14 +5858,8 @@ devices: name: BPM_021 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN03-AR/DG-EPOS/BPM.05/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN03-AR/DG-EPOS/BPM.05/y_pos - unit: mm + x_pos: AN03-AR/DG-EPOS/BPM.05/x_pos + y_pos: AN03-AR/DG-EPOS/BPM.05/y_pos - type: pyaml.magnet.cfm_magnet name: SXD3_VCOR_001 mapping: @@ -6069,14 +5943,8 @@ devices: name: BPM_022 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN03-AR/DG-EPOS/BPM.06/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN03-AR/DG-EPOS/BPM.06/y_pos - unit: mm + x_pos: AN03-AR/DG-EPOS/BPM.06/x_pos + y_pos: AN03-AR/DG-EPOS/BPM.06/y_pos - type: pyaml.magnet.cfm_magnet name: SXD33_VCOR_001 mapping: @@ -6160,14 +6028,8 @@ devices: name: BPM_023 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN03-AR/DG-EPOS/BPM.07/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN03-AR/DG-EPOS/BPM.07/y_pos - unit: mm + x_pos: AN03-AR/DG-EPOS/BPM.07/x_pos + y_pos: AN03-AR/DG-EPOS/BPM.07/y_pos - type: pyaml.magnet.cfm_magnet name: SXD3_VCOR_002 mapping: @@ -6251,14 +6113,8 @@ devices: name: BPM_024 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN03-AR/DG-EPOS/BPM.08/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN03-AR/DG-EPOS/BPM.08/y_pos - unit: mm + x_pos: AN03-AR/DG-EPOS/BPM.08/x_pos + y_pos: AN03-AR/DG-EPOS/BPM.08/y_pos - type: pyaml.magnet.cfm_magnet name: SXD3_VCOR_003 mapping: @@ -6358,14 +6214,8 @@ devices: name: BPM_025 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN03-AR/DG-EPOS/BPM.09/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN03-AR/DG-EPOS/BPM.09/y_pos - unit: mm + x_pos: AN03-AR/DG-EPOS/BPM.09/x_pos + y_pos: AN03-AR/DG-EPOS/BPM.09/y_pos - type: pyaml.magnet.cfm_magnet name: SH9_COR_003 mapping: @@ -6417,14 +6267,8 @@ devices: name: BPM_026 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN03-AR/DG-EPOS/BPM.10/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN03-AR/DG-EPOS/BPM.10/y_pos - unit: mm + x_pos: AN03-AR/DG-EPOS/BPM.10/x_pos + y_pos: AN03-AR/DG-EPOS/BPM.10/y_pos - type: pyaml.magnet.cfm_magnet name: SH7_COR_003 mapping: @@ -6469,26 +6313,14 @@ devices: name: BPM_027 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN04-SD/DG-EPOS/BPM.01/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN04-SD/DG-EPOS/BPM.01/y_pos - unit: mm + x_pos: AN04-SD/DG-EPOS/BPM.01/x_pos + y_pos: AN04-SD/DG-EPOS/BPM.01/y_pos - type: pyaml.bpm.bpm name: BPM_028 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN04-SD/DG-EPOS/BPM.02/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN04-SD/DG-EPOS/BPM.02/y_pos - unit: mm + x_pos: AN04-SD/DG-EPOS/BPM.02/x_pos + y_pos: AN04-SD/DG-EPOS/BPM.02/y_pos - type: pyaml.magnet.cfm_magnet name: OH7_QCORROCT_25_QT_001 mapping: @@ -6533,14 +6365,8 @@ devices: name: BPM_029 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN04-AR/DG-EPOS/BPM.03/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN04-AR/DG-EPOS/BPM.03/y_pos - unit: mm + x_pos: AN04-AR/DG-EPOS/BPM.03/x_pos + y_pos: AN04-AR/DG-EPOS/BPM.03/y_pos - type: pyaml.magnet.quadrupole name: QCORR_034 model: @@ -6637,14 +6463,8 @@ devices: name: BPM_030 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN04-AR/DG-EPOS/BPM.04/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN04-AR/DG-EPOS/BPM.04/y_pos - unit: mm + x_pos: AN04-AR/DG-EPOS/BPM.04/x_pos + y_pos: AN04-AR/DG-EPOS/BPM.04/y_pos - type: pyaml.magnet.cfm_magnet name: SXD41_VCOR_001 mapping: @@ -6728,14 +6548,8 @@ devices: name: BPM_031 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN04-AR/DG-EPOS/BPM.05/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN04-AR/DG-EPOS/BPM.05/y_pos - unit: mm + x_pos: AN04-AR/DG-EPOS/BPM.05/x_pos + y_pos: AN04-AR/DG-EPOS/BPM.05/y_pos - type: pyaml.magnet.cfm_magnet name: SXD4_VCOR_001 mapping: @@ -6835,14 +6649,8 @@ devices: name: BPM_032 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN04-AR/DG-EPOS/BPM.06/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN04-AR/DG-EPOS/BPM.06/y_pos - unit: mm + x_pos: AN04-AR/DG-EPOS/BPM.06/x_pos + y_pos: AN04-AR/DG-EPOS/BPM.06/y_pos - type: pyaml.magnet.cfm_magnet name: SH12_COR_001 mapping: @@ -6901,14 +6709,8 @@ devices: name: BPM_033 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN04-AR/DG-EPOS/BPM.07/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN04-AR/DG-EPOS/BPM.07/y_pos - unit: mm + x_pos: AN04-AR/DG-EPOS/BPM.07/x_pos + y_pos: AN04-AR/DG-EPOS/BPM.07/y_pos - type: pyaml.magnet.cfm_magnet name: SH10_COR_001 mapping: @@ -6953,26 +6755,14 @@ devices: name: BPM_034 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN05-SD/DG-EPOS/BPM.01/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN05-SD/DG-EPOS/BPM.01/y_pos - unit: mm + x_pos: AN05-SD/DG-EPOS/BPM.01/x_pos + y_pos: AN05-SD/DG-EPOS/BPM.01/y_pos - type: pyaml.bpm.bpm name: BPM_035 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN05-SD/DG-EPOS/BPM.02/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN05-SD/DG-EPOS/BPM.02/y_pos - unit: mm + x_pos: AN05-SD/DG-EPOS/BPM.02/x_pos + y_pos: AN05-SD/DG-EPOS/BPM.02/y_pos - type: pyaml.magnet.cfm_magnet name: OH10_QCORROCT_31_QT_001 mapping: @@ -7017,14 +6807,8 @@ devices: name: BPM_036 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN05-AR/DG-EPOS/BPM.03/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN05-AR/DG-EPOS/BPM.03/y_pos - unit: mm + x_pos: AN05-AR/DG-EPOS/BPM.03/x_pos + y_pos: AN05-AR/DG-EPOS/BPM.03/y_pos - type: pyaml.magnet.cfm_magnet name: OH11_QCORROCT_32_001 mapping: @@ -7128,14 +6912,8 @@ devices: name: BPM_037 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN05-AR/DG-EPOS/BPM.04/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN05-AR/DG-EPOS/BPM.04/y_pos - unit: mm + x_pos: AN05-AR/DG-EPOS/BPM.04/x_pos + y_pos: AN05-AR/DG-EPOS/BPM.04/y_pos - type: pyaml.magnet.cfm_magnet name: SXD51_VCOR_001 mapping: @@ -7219,14 +6997,8 @@ devices: name: BPM_038 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN05-AR/DG-EPOS/BPM.05/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN05-AR/DG-EPOS/BPM.05/y_pos - unit: mm + x_pos: AN05-AR/DG-EPOS/BPM.05/x_pos + y_pos: AN05-AR/DG-EPOS/BPM.05/y_pos - type: pyaml.magnet.cfm_magnet name: SXD5_VCOR_001 mapping: @@ -7310,14 +7082,8 @@ devices: name: BPM_039 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN05-AR/DG-EPOS/BPM.06/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN05-AR/DG-EPOS/BPM.06/y_pos - unit: mm + x_pos: AN05-AR/DG-EPOS/BPM.06/x_pos + y_pos: AN05-AR/DG-EPOS/BPM.06/y_pos - type: pyaml.magnet.cfm_magnet name: SXD53_VCOR_001 mapping: @@ -7401,14 +7167,8 @@ devices: name: BPM_040 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN05-AR/DG-EPOS/BPM.07/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN05-AR/DG-EPOS/BPM.07/y_pos - unit: mm + x_pos: AN05-AR/DG-EPOS/BPM.07/x_pos + y_pos: AN05-AR/DG-EPOS/BPM.07/y_pos - type: pyaml.magnet.cfm_magnet name: SXD5_VCOR_002 mapping: @@ -7492,14 +7252,8 @@ devices: name: BPM_041 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN05-AR/DG-EPOS/BPM.08/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN05-AR/DG-EPOS/BPM.08/y_pos - unit: mm + x_pos: AN05-AR/DG-EPOS/BPM.08/x_pos + y_pos: AN05-AR/DG-EPOS/BPM.08/y_pos - type: pyaml.magnet.cfm_magnet name: SXD5_VCOR_003 mapping: @@ -7599,14 +7353,8 @@ devices: name: BPM_042 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN05-AR/DG-EPOS/BPM.09/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN05-AR/DG-EPOS/BPM.09/y_pos - unit: mm + x_pos: AN05-AR/DG-EPOS/BPM.09/x_pos + y_pos: AN05-AR/DG-EPOS/BPM.09/y_pos - type: pyaml.magnet.quadrupole name: QCORR_052 model: @@ -7636,14 +7384,8 @@ devices: name: BPM_043 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN05-AR/DG-EPOS/BPM.10/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN05-AR/DG-EPOS/BPM.10/y_pos - unit: mm + x_pos: AN05-AR/DG-EPOS/BPM.10/x_pos + y_pos: AN05-AR/DG-EPOS/BPM.10/y_pos - type: pyaml.magnet.cfm_magnet name: SH14_HCOR_001 mapping: @@ -7720,26 +7462,14 @@ devices: name: BPM_044 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN06-SD/DG-EPOS/BPM.01/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN06-SD/DG-EPOS/BPM.01/y_pos - unit: mm + x_pos: AN06-SD/DG-EPOS/BPM.01/x_pos + y_pos: AN06-SD/DG-EPOS/BPM.01/y_pos - type: pyaml.bpm.bpm name: BPM_045 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN06-SD/DG-EPOS/BPM.02/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN06-SD/DG-EPOS/BPM.02/y_pos - unit: mm + x_pos: AN06-SD/DG-EPOS/BPM.02/x_pos + y_pos: AN06-SD/DG-EPOS/BPM.02/y_pos - type: pyaml.magnet.cfm_magnet name: OH16_QCORROCT_41_001 mapping: @@ -7816,26 +7546,14 @@ devices: name: BPM_046 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN06-SD/DG-EPOS/BPM.03/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN06-SD/DG-EPOS/BPM.03/y_pos - unit: mm + x_pos: AN06-SD/DG-EPOS/BPM.03/x_pos + y_pos: AN06-SD/DG-EPOS/BPM.03/y_pos - type: pyaml.bpm.bpm name: BPM_047 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN06-SD/DG-EPOS/BPM.04/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN06-SD/DG-EPOS/BPM.04/y_pos - unit: mm + x_pos: AN06-SD/DG-EPOS/BPM.04/x_pos + y_pos: AN06-SD/DG-EPOS/BPM.04/y_pos - type: pyaml.magnet.cfm_magnet name: OH13_QCORROCT_43_QT_001 mapping: @@ -7912,14 +7630,8 @@ devices: name: BPM_048 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN06-AR/DG-EPOS/BPM.05/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN06-AR/DG-EPOS/BPM.05/y_pos - unit: mm + x_pos: AN06-AR/DG-EPOS/BPM.05/x_pos + y_pos: AN06-AR/DG-EPOS/BPM.05/y_pos - type: pyaml.magnet.cfm_magnet name: SH15_VCOR_002 mapping: @@ -7994,14 +7706,8 @@ devices: name: BPM_049 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN06-AR/DG-EPOS/BPM.06/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN06-AR/DG-EPOS/BPM.06/y_pos - unit: mm + x_pos: AN06-AR/DG-EPOS/BPM.06/x_pos + y_pos: AN06-AR/DG-EPOS/BPM.06/y_pos - type: pyaml.magnet.cfm_magnet name: SXD52_VCOR_002 mapping: @@ -8085,14 +7791,8 @@ devices: name: BPM_050 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN06-AR/DG-EPOS/BPM.07/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN06-AR/DG-EPOS/BPM.07/y_pos - unit: mm + x_pos: AN06-AR/DG-EPOS/BPM.07/x_pos + y_pos: AN06-AR/DG-EPOS/BPM.07/y_pos - type: pyaml.magnet.cfm_magnet name: SXD5_VCOR_004 mapping: @@ -8176,14 +7876,8 @@ devices: name: BPM_051 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN06-AR/DG-EPOS/BPM.08/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN06-AR/DG-EPOS/BPM.08/y_pos - unit: mm + x_pos: AN06-AR/DG-EPOS/BPM.08/x_pos + y_pos: AN06-AR/DG-EPOS/BPM.08/y_pos - type: pyaml.magnet.cfm_magnet name: SXD53_VCOR_002 mapping: @@ -8267,14 +7961,8 @@ devices: name: BPM_052 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN06-AR/DG-EPOS/BPM.09/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN06-AR/DG-EPOS/BPM.09/y_pos - unit: mm + x_pos: AN06-AR/DG-EPOS/BPM.09/x_pos + y_pos: AN06-AR/DG-EPOS/BPM.09/y_pos - type: pyaml.magnet.cfm_magnet name: SXD5_VCOR_005 mapping: @@ -8358,14 +8046,8 @@ devices: name: BPM_053 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN06-AR/DG-EPOS/BPM.10/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN06-AR/DG-EPOS/BPM.10/y_pos - unit: mm + x_pos: AN06-AR/DG-EPOS/BPM.10/x_pos + y_pos: AN06-AR/DG-EPOS/BPM.10/y_pos - type: pyaml.magnet.cfm_magnet name: SXD5_VCOR_006 mapping: @@ -8465,14 +8147,8 @@ devices: name: BPM_054 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN06-AR/DG-EPOS/BPM.11/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN06-AR/DG-EPOS/BPM.11/y_pos - unit: mm + x_pos: AN06-AR/DG-EPOS/BPM.11/x_pos + y_pos: AN06-AR/DG-EPOS/BPM.11/y_pos - type: pyaml.magnet.cfm_magnet name: SH12_COR_003 mapping: @@ -8531,14 +8207,8 @@ devices: name: BPM_055 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN06-AR/DG-EPOS/BPM.12/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN06-AR/DG-EPOS/BPM.12/y_pos - unit: mm + x_pos: AN06-AR/DG-EPOS/BPM.12/x_pos + y_pos: AN06-AR/DG-EPOS/BPM.12/y_pos - type: pyaml.magnet.cfm_magnet name: SH10_COR_003 mapping: @@ -8583,26 +8253,14 @@ devices: name: BPM_056 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN07-SD/DG-EPOS/BPM.01/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN07-SD/DG-EPOS/BPM.01/y_pos - unit: mm + x_pos: AN07-SD/DG-EPOS/BPM.01/x_pos + y_pos: AN07-SD/DG-EPOS/BPM.01/y_pos - type: pyaml.bpm.bpm name: BPM_057 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN07-SD/DG-EPOS/BPM.02/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN07-SD/DG-EPOS/BPM.02/y_pos - unit: mm + x_pos: AN07-SD/DG-EPOS/BPM.02/x_pos + y_pos: AN07-SD/DG-EPOS/BPM.02/y_pos - type: pyaml.magnet.cfm_magnet name: OH10_QCORROCT_53_QT_001 mapping: @@ -8647,14 +8305,8 @@ devices: name: BPM_058 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN07-AR/DG-EPOS/BPM.03/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN07-AR/DG-EPOS/BPM.03/y_pos - unit: mm + x_pos: AN07-AR/DG-EPOS/BPM.03/x_pos + y_pos: AN07-AR/DG-EPOS/BPM.03/y_pos - type: pyaml.magnet.cfm_magnet name: OH11_QCORROCT_54_001 mapping: @@ -8758,14 +8410,8 @@ devices: name: BPM_059 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN07-AR/DG-EPOS/BPM.04/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN07-AR/DG-EPOS/BPM.04/y_pos - unit: mm + x_pos: AN07-AR/DG-EPOS/BPM.04/x_pos + y_pos: AN07-AR/DG-EPOS/BPM.04/y_pos - type: pyaml.magnet.cfm_magnet name: SXD42_VCOR_002 mapping: @@ -8849,14 +8495,8 @@ devices: name: BPM_060 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN07-AR/DG-EPOS/BPM.05/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN07-AR/DG-EPOS/BPM.05/y_pos - unit: mm + x_pos: AN07-AR/DG-EPOS/BPM.05/x_pos + y_pos: AN07-AR/DG-EPOS/BPM.05/y_pos - type: pyaml.magnet.cfm_magnet name: SXD4_VCOR_002 mapping: @@ -8956,14 +8596,8 @@ devices: name: BPM_061 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN07-AR/DG-EPOS/BPM.06/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN07-AR/DG-EPOS/BPM.06/y_pos - unit: mm + x_pos: AN07-AR/DG-EPOS/BPM.06/x_pos + y_pos: AN07-AR/DG-EPOS/BPM.06/y_pos - type: pyaml.magnet.cfm_magnet name: SH9_COR_005 mapping: @@ -9015,14 +8649,8 @@ devices: name: BPM_062 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN07-AR/DG-EPOS/BPM.07/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN07-AR/DG-EPOS/BPM.07/y_pos - unit: mm + x_pos: AN07-AR/DG-EPOS/BPM.07/x_pos + y_pos: AN07-AR/DG-EPOS/BPM.07/y_pos - type: pyaml.magnet.cfm_magnet name: SH7_COR_005 mapping: @@ -9067,26 +8695,14 @@ devices: name: BPM_063 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN08-SD/DG-EPOS/BPM.01/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN08-SD/DG-EPOS/BPM.01/y_pos - unit: mm + x_pos: AN08-SD/DG-EPOS/BPM.01/x_pos + y_pos: AN08-SD/DG-EPOS/BPM.01/y_pos - type: pyaml.bpm.bpm name: BPM_064 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN08-SD/DG-EPOS/BPM.02/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN08-SD/DG-EPOS/BPM.02/y_pos - unit: mm + x_pos: AN08-SD/DG-EPOS/BPM.02/x_pos + y_pos: AN08-SD/DG-EPOS/BPM.02/y_pos - type: pyaml.magnet.cfm_magnet name: OH7_QCORROCT_59_QT_001 mapping: @@ -9131,14 +8747,8 @@ devices: name: BPM_065 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN08-AR/DG-EPOS/BPM.03/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN08-AR/DG-EPOS/BPM.03/y_pos - unit: mm + x_pos: AN08-AR/DG-EPOS/BPM.03/x_pos + y_pos: AN08-AR/DG-EPOS/BPM.03/y_pos - type: pyaml.magnet.quadrupole name: QCORR_072 model: @@ -9235,14 +8845,8 @@ devices: name: BPM_066 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN08-AR/DG-EPOS/BPM.04/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN08-AR/DG-EPOS/BPM.04/y_pos - unit: mm + x_pos: AN08-AR/DG-EPOS/BPM.04/x_pos + y_pos: AN08-AR/DG-EPOS/BPM.04/y_pos - type: pyaml.magnet.cfm_magnet name: SXD32_VCOR_002 mapping: @@ -9326,14 +8930,8 @@ devices: name: BPM_067 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN08-AR/DG-EPOS/BPM.05/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN08-AR/DG-EPOS/BPM.05/y_pos - unit: mm + x_pos: AN08-AR/DG-EPOS/BPM.05/x_pos + y_pos: AN08-AR/DG-EPOS/BPM.05/y_pos - type: pyaml.magnet.cfm_magnet name: SXD3_VCOR_004 mapping: @@ -9417,14 +9015,8 @@ devices: name: BPM_068 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN08-AR/DG-EPOS/BPM.06/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN08-AR/DG-EPOS/BPM.06/y_pos - unit: mm + x_pos: AN08-AR/DG-EPOS/BPM.06/x_pos + y_pos: AN08-AR/DG-EPOS/BPM.06/y_pos - type: pyaml.magnet.cfm_magnet name: SXD33_VCOR_002 mapping: @@ -9508,14 +9100,8 @@ devices: name: BPM_069 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN08-AR/DG-EPOS/BPM.07/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN08-AR/DG-EPOS/BPM.07/y_pos - unit: mm + x_pos: AN08-AR/DG-EPOS/BPM.07/x_pos + y_pos: AN08-AR/DG-EPOS/BPM.07/y_pos - type: pyaml.magnet.cfm_magnet name: SXD3_VCOR_005 mapping: @@ -9599,14 +9185,8 @@ devices: name: BPM_070 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN08-AR/DG-EPOS/BPM.08/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN08-AR/DG-EPOS/BPM.08/y_pos - unit: mm + x_pos: AN08-AR/DG-EPOS/BPM.08/x_pos + y_pos: AN08-AR/DG-EPOS/BPM.08/y_pos - type: pyaml.magnet.cfm_magnet name: SXD3_VCOR_006 mapping: @@ -9706,14 +9286,8 @@ devices: name: BPM_071 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN08-AR/DG-EPOS/BPM.09/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN08-AR/DG-EPOS/BPM.09/y_pos - unit: mm + x_pos: AN08-AR/DG-EPOS/BPM.09/x_pos + y_pos: AN08-AR/DG-EPOS/BPM.09/y_pos - type: pyaml.magnet.cfm_magnet name: SH9_COR_007 mapping: @@ -9765,14 +9339,8 @@ devices: name: BPM_072 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN08-AR/DG-EPOS/BPM.10/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN08-AR/DG-EPOS/BPM.10/y_pos - unit: mm + x_pos: AN08-AR/DG-EPOS/BPM.10/x_pos + y_pos: AN08-AR/DG-EPOS/BPM.10/y_pos - type: pyaml.magnet.cfm_magnet name: SH7_COR_007 mapping: @@ -9817,26 +9385,14 @@ devices: name: BPM_073 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN09-SD/DG-EPOS/BPM.01/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN09-SD/DG-EPOS/BPM.01/y_pos - unit: mm + x_pos: AN09-SD/DG-EPOS/BPM.01/x_pos + y_pos: AN09-SD/DG-EPOS/BPM.01/y_pos - type: pyaml.bpm.bpm name: BPM_074 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN09-SD/DG-EPOS/BPM.02/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN09-SD/DG-EPOS/BPM.02/y_pos - unit: mm + x_pos: AN09-SD/DG-EPOS/BPM.02/x_pos + y_pos: AN09-SD/DG-EPOS/BPM.02/y_pos - type: pyaml.magnet.cfm_magnet name: OH7_QCORROCT_67_QT_001 mapping: @@ -9881,14 +9437,8 @@ devices: name: BPM_075 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN09-AR/DG-EPOS/BPM.03/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN09-AR/DG-EPOS/BPM.03/y_pos - unit: mm + x_pos: AN09-AR/DG-EPOS/BPM.03/x_pos + y_pos: AN09-AR/DG-EPOS/BPM.03/y_pos - type: pyaml.magnet.quadrupole name: QCORR_086 model: @@ -9985,14 +9535,8 @@ devices: name: BPM_076 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN09-AR/DG-EPOS/BPM.04/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN09-AR/DG-EPOS/BPM.04/y_pos - unit: mm + x_pos: AN09-AR/DG-EPOS/BPM.04/x_pos + y_pos: AN09-AR/DG-EPOS/BPM.04/y_pos - type: pyaml.magnet.cfm_magnet name: SXD22_VCOR_002 mapping: @@ -10076,14 +9620,8 @@ devices: name: BPM_077 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN09-AR/DG-EPOS/BPM.05/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN09-AR/DG-EPOS/BPM.05/y_pos - unit: mm + x_pos: AN09-AR/DG-EPOS/BPM.05/x_pos + y_pos: AN09-AR/DG-EPOS/BPM.05/y_pos - type: pyaml.magnet.cfm_magnet name: SXD2_VCOR_002 mapping: @@ -10183,14 +9721,8 @@ devices: name: BPM_078 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN09-AR/DG-EPOS/BPM.06/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN09-AR/DG-EPOS/BPM.06/y_pos - unit: mm + x_pos: AN09-AR/DG-EPOS/BPM.06/x_pos + y_pos: AN09-AR/DG-EPOS/BPM.06/y_pos - type: pyaml.magnet.cfm_magnet name: SH6_COR_003 mapping: @@ -10249,14 +9781,8 @@ devices: name: BPM_079 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN09-AR/DG-EPOS/BPM.07/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN09-AR/DG-EPOS/BPM.07/y_pos - unit: mm + x_pos: AN09-AR/DG-EPOS/BPM.07/x_pos + y_pos: AN09-AR/DG-EPOS/BPM.07/y_pos - type: pyaml.magnet.cfm_magnet name: SH4_COR_003 mapping: @@ -10301,26 +9827,14 @@ devices: name: BPM_080 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN10-SD/DG-EPOS/BPM.01/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN10-SD/DG-EPOS/BPM.01/y_pos - unit: mm + x_pos: AN10-SD/DG-EPOS/BPM.01/x_pos + y_pos: AN10-SD/DG-EPOS/BPM.01/y_pos - type: pyaml.bpm.bpm name: BPM_081 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN10-SD/DG-EPOS/BPM.02/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN10-SD/DG-EPOS/BPM.02/y_pos - unit: mm + x_pos: AN10-SD/DG-EPOS/BPM.02/x_pos + y_pos: AN10-SD/DG-EPOS/BPM.02/y_pos - type: pyaml.magnet.cfm_magnet name: OH4_QCORROCT_73_QT_001 mapping: @@ -10365,14 +9879,8 @@ devices: name: BPM_082 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN10-AR/DG-EPOS/BPM.03/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN10-AR/DG-EPOS/BPM.03/y_pos - unit: mm + x_pos: AN10-AR/DG-EPOS/BPM.03/x_pos + y_pos: AN10-AR/DG-EPOS/BPM.03/y_pos - type: pyaml.magnet.cfm_magnet name: OH5_QCORROCT_74_001 mapping: @@ -10476,14 +9984,8 @@ devices: name: BPM_083 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN10-AR/DG-EPOS/BPM.04/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN10-AR/DG-EPOS/BPM.04/y_pos - unit: mm + x_pos: AN10-AR/DG-EPOS/BPM.04/x_pos + y_pos: AN10-AR/DG-EPOS/BPM.04/y_pos - type: pyaml.magnet.cfm_magnet name: SXD12_VCOR_002 mapping: @@ -10567,14 +10069,8 @@ devices: name: BPM_084 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN10-AR/DG-EPOS/BPM.05/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN10-AR/DG-EPOS/BPM.05/y_pos - unit: mm + x_pos: AN10-AR/DG-EPOS/BPM.05/x_pos + y_pos: AN10-AR/DG-EPOS/BPM.05/y_pos - type: pyaml.magnet.cfm_magnet name: SXD1_VCOR_004 mapping: @@ -10658,14 +10154,8 @@ devices: name: BPM_085 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN10-AR/DG-EPOS/BPM.06/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN10-AR/DG-EPOS/BPM.06/y_pos - unit: mm + x_pos: AN10-AR/DG-EPOS/BPM.06/x_pos + y_pos: AN10-AR/DG-EPOS/BPM.06/y_pos - type: pyaml.magnet.cfm_magnet name: SXD13_VCOR_002 mapping: @@ -10749,14 +10239,8 @@ devices: name: BPM_086 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN10-AR/DG-EPOS/BPM.07/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN10-AR/DG-EPOS/BPM.07/y_pos - unit: mm + x_pos: AN10-AR/DG-EPOS/BPM.07/x_pos + y_pos: AN10-AR/DG-EPOS/BPM.07/y_pos - type: pyaml.magnet.cfm_magnet name: SXD1_VCOR_005 mapping: @@ -10840,14 +10324,8 @@ devices: name: BPM_087 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN10-AR/DG-EPOS/BPM.08/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN10-AR/DG-EPOS/BPM.08/y_pos - unit: mm + x_pos: AN10-AR/DG-EPOS/BPM.08/x_pos + y_pos: AN10-AR/DG-EPOS/BPM.08/y_pos - type: pyaml.magnet.cfm_magnet name: SXD1_VCOR_006 mapping: @@ -10947,14 +10425,8 @@ devices: name: BPM_088 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN10-AR/DG-EPOS/BPM.09/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN10-AR/DG-EPOS/BPM.09/y_pos - unit: mm + x_pos: AN10-AR/DG-EPOS/BPM.09/x_pos + y_pos: AN10-AR/DG-EPOS/BPM.09/y_pos - type: pyaml.magnet.quadrupole name: QCORR_104 model: @@ -10984,14 +10456,8 @@ devices: name: BPM_089 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN10-AR/DG-EPOS/BPM.10/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN10-AR/DG-EPOS/BPM.10/y_pos - unit: mm + x_pos: AN10-AR/DG-EPOS/BPM.10/x_pos + y_pos: AN10-AR/DG-EPOS/BPM.10/y_pos - type: pyaml.magnet.cfm_magnet name: OH2_QCORROCT_81_001 mapping: @@ -11068,26 +10534,14 @@ devices: name: BPM_090 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN11-SD/DG-EPOS/BPM.01/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN11-SD/DG-EPOS/BPM.01/y_pos - unit: mm + x_pos: AN11-SD/DG-EPOS/BPM.01/x_pos + y_pos: AN11-SD/DG-EPOS/BPM.01/y_pos - type: pyaml.bpm.bpm name: BPM_091 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN11-SD/DG-EPOS/BPM.02/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN11-SD/DG-EPOS/BPM.02/y_pos - unit: mm + x_pos: AN11-SD/DG-EPOS/BPM.02/x_pos + y_pos: AN11-SD/DG-EPOS/BPM.02/y_pos - type: pyaml.magnet.cfm_magnet name: SH1_COR_003 mapping: @@ -11164,14 +10618,8 @@ devices: name: BPM_092 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN11-AR/DG-EPOS/BPM.03/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN11-AR/DG-EPOS/BPM.03/y_pos - unit: mm + x_pos: AN11-AR/DG-EPOS/BPM.03/x_pos + y_pos: AN11-AR/DG-EPOS/BPM.03/y_pos - type: pyaml.magnet.cfm_magnet name: SH3_VCOR_003 mapping: @@ -11246,14 +10694,8 @@ devices: name: BPM_093 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN11-AR/DG-EPOS/BPM.04/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN11-AR/DG-EPOS/BPM.04/y_pos - unit: mm + x_pos: AN11-AR/DG-EPOS/BPM.04/x_pos + y_pos: AN11-AR/DG-EPOS/BPM.04/y_pos - type: pyaml.magnet.cfm_magnet name: SXD11_VCOR_003 mapping: @@ -11337,14 +10779,8 @@ devices: name: BPM_094 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN11-AR/DG-EPOS/BPM.05/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN11-AR/DG-EPOS/BPM.05/y_pos - unit: mm + x_pos: AN11-AR/DG-EPOS/BPM.05/x_pos + y_pos: AN11-AR/DG-EPOS/BPM.05/y_pos - type: pyaml.magnet.cfm_magnet name: SXD1_VCOR_007 mapping: @@ -11428,14 +10864,8 @@ devices: name: BPM_095 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN11-AR/DG-EPOS/BPM.06/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN11-AR/DG-EPOS/BPM.06/y_pos - unit: mm + x_pos: AN11-AR/DG-EPOS/BPM.06/x_pos + y_pos: AN11-AR/DG-EPOS/BPM.06/y_pos - type: pyaml.magnet.cfm_magnet name: SXD13_VCOR_003 mapping: @@ -11519,14 +10949,8 @@ devices: name: BPM_096 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN11-AR/DG-EPOS/BPM.07/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN11-AR/DG-EPOS/BPM.07/y_pos - unit: mm + x_pos: AN11-AR/DG-EPOS/BPM.07/x_pos + y_pos: AN11-AR/DG-EPOS/BPM.07/y_pos - type: pyaml.magnet.cfm_magnet name: SXD1_VCOR_008 mapping: @@ -11610,14 +11034,8 @@ devices: name: BPM_097 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN11-AR/DG-EPOS/BPM.08/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN11-AR/DG-EPOS/BPM.08/y_pos - unit: mm + x_pos: AN11-AR/DG-EPOS/BPM.08/x_pos + y_pos: AN11-AR/DG-EPOS/BPM.08/y_pos - type: pyaml.magnet.cfm_magnet name: SXD1_VCOR_009 mapping: @@ -11717,14 +11135,8 @@ devices: name: BPM_098 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN11-AR/DG-EPOS/BPM.09/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN11-AR/DG-EPOS/BPM.09/y_pos - unit: mm + x_pos: AN11-AR/DG-EPOS/BPM.09/x_pos + y_pos: AN11-AR/DG-EPOS/BPM.09/y_pos - type: pyaml.magnet.cfm_magnet name: SH6_COR_005 mapping: @@ -11783,14 +11195,8 @@ devices: name: BPM_099 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN11-AR/DG-EPOS/BPM.10/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN11-AR/DG-EPOS/BPM.10/y_pos - unit: mm + x_pos: AN11-AR/DG-EPOS/BPM.10/x_pos + y_pos: AN11-AR/DG-EPOS/BPM.10/y_pos - type: pyaml.magnet.cfm_magnet name: SH4_COR_005 mapping: @@ -11835,26 +11241,14 @@ devices: name: BPM_100 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN12-SD/DG-EPOS/BPM.01/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN12-SD/DG-EPOS/BPM.01/y_pos - unit: mm + x_pos: AN12-SD/DG-EPOS/BPM.01/x_pos + y_pos: AN12-SD/DG-EPOS/BPM.01/y_pos - type: pyaml.bpm.bpm name: BPM_101 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN12-SD/DG-EPOS/BPM.02/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN12-SD/DG-EPOS/BPM.02/y_pos - unit: mm + x_pos: AN12-SD/DG-EPOS/BPM.02/x_pos + y_pos: AN12-SD/DG-EPOS/BPM.02/y_pos - type: pyaml.magnet.cfm_magnet name: OH4_QCORROCT_93_QT_001 mapping: @@ -11899,14 +11293,8 @@ devices: name: BPM_102 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN12-AR/DG-EPOS/BPM.03/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN12-AR/DG-EPOS/BPM.03/y_pos - unit: mm + x_pos: AN12-AR/DG-EPOS/BPM.03/x_pos + y_pos: AN12-AR/DG-EPOS/BPM.03/y_pos - type: pyaml.magnet.cfm_magnet name: OH5_QCORROCT_94_001 mapping: @@ -12010,14 +11398,8 @@ devices: name: BPM_103 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN12-AR/DG-EPOS/BPM.04/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN12-AR/DG-EPOS/BPM.04/y_pos - unit: mm + x_pos: AN12-AR/DG-EPOS/BPM.04/x_pos + y_pos: AN12-AR/DG-EPOS/BPM.04/y_pos - type: pyaml.magnet.cfm_magnet name: SXD21_VCOR_003 mapping: @@ -12101,14 +11483,8 @@ devices: name: BPM_104 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN12-AR/DG-EPOS/BPM.05/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN12-AR/DG-EPOS/BPM.05/y_pos - unit: mm + x_pos: AN12-AR/DG-EPOS/BPM.05/x_pos + y_pos: AN12-AR/DG-EPOS/BPM.05/y_pos - type: pyaml.magnet.cfm_magnet name: SXD2_VCOR_003 mapping: @@ -12208,14 +11584,8 @@ devices: name: BPM_105 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN12-AR/DG-EPOS/BPM.06/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN12-AR/DG-EPOS/BPM.06/y_pos - unit: mm + x_pos: AN12-AR/DG-EPOS/BPM.06/x_pos + y_pos: AN12-AR/DG-EPOS/BPM.06/y_pos - type: pyaml.magnet.cfm_magnet name: SH9_COR_009 mapping: @@ -12267,14 +11637,8 @@ devices: name: BPM_106 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN12-AR/DG-EPOS/BPM.07/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN12-AR/DG-EPOS/BPM.07/y_pos - unit: mm + x_pos: AN12-AR/DG-EPOS/BPM.07/x_pos + y_pos: AN12-AR/DG-EPOS/BPM.07/y_pos - type: pyaml.magnet.cfm_magnet name: SH7_COR_009 mapping: @@ -12319,26 +11683,14 @@ devices: name: BPM_107 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN13-SD/DG-EPOS/BPM.01/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN13-SD/DG-EPOS/BPM.01/y_pos - unit: mm + x_pos: AN13-SD/DG-EPOS/BPM.01/x_pos + y_pos: AN13-SD/DG-EPOS/BPM.01/y_pos - type: pyaml.bpm.bpm name: BPM_108 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN13-SD/DG-EPOS/BPM.02/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN13-SD/DG-EPOS/BPM.02/y_pos - unit: mm + x_pos: AN13-SD/DG-EPOS/BPM.02/x_pos + y_pos: AN13-SD/DG-EPOS/BPM.02/y_pos - type: pyaml.magnet.cfm_magnet name: OH7_QCORROCT_99_QT_001 mapping: @@ -12383,14 +11735,8 @@ devices: name: BPM_109 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN13-AR/DG-EPOS/BPM.03/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN13-AR/DG-EPOS/BPM.03/y_pos - unit: mm + x_pos: AN13-AR/DG-EPOS/BPM.03/x_pos + y_pos: AN13-AR/DG-EPOS/BPM.03/y_pos - type: pyaml.magnet.quadrupole name: QCORR_124 model: @@ -12487,14 +11833,8 @@ devices: name: BPM_110 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN13-AR/DG-EPOS/BPM.04/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN13-AR/DG-EPOS/BPM.04/y_pos - unit: mm + x_pos: AN13-AR/DG-EPOS/BPM.04/x_pos + y_pos: AN13-AR/DG-EPOS/BPM.04/y_pos - type: pyaml.magnet.cfm_magnet name: SXD31_VCOR_003 mapping: @@ -12578,14 +11918,8 @@ devices: name: BPM_111 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN13-AR/DG-EPOS/BPM.05/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN13-AR/DG-EPOS/BPM.05/y_pos - unit: mm + x_pos: AN13-AR/DG-EPOS/BPM.05/x_pos + y_pos: AN13-AR/DG-EPOS/BPM.05/y_pos - type: pyaml.magnet.cfm_magnet name: SXD3_VCOR_007 mapping: @@ -12669,14 +12003,8 @@ devices: name: BPM_112 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN13-AR/DG-EPOS/BPM.06/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN13-AR/DG-EPOS/BPM.06/y_pos - unit: mm + x_pos: AN13-AR/DG-EPOS/BPM.06/x_pos + y_pos: AN13-AR/DG-EPOS/BPM.06/y_pos - type: pyaml.magnet.cfm_magnet name: SXD33_VCOR_003 mapping: @@ -12760,14 +12088,8 @@ devices: name: BPM_113 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN13-AR/DG-EPOS/BPM.07/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN13-AR/DG-EPOS/BPM.07/y_pos - unit: mm + x_pos: AN13-AR/DG-EPOS/BPM.07/x_pos + y_pos: AN13-AR/DG-EPOS/BPM.07/y_pos - type: pyaml.magnet.cfm_magnet name: SXD3_VCOR_008 mapping: @@ -12851,14 +12173,8 @@ devices: name: BPM_114 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN13-AR/DG-EPOS/BPM.08/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN13-AR/DG-EPOS/BPM.08/y_pos - unit: mm + x_pos: AN13-AR/DG-EPOS/BPM.08/x_pos + y_pos: AN13-AR/DG-EPOS/BPM.08/y_pos - type: pyaml.magnet.cfm_magnet name: SXD3_VCOR_009 mapping: @@ -12958,14 +12274,8 @@ devices: name: BPM_115 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN13-AR/DG-EPOS/BPM.09/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN13-AR/DG-EPOS/BPM.09/y_pos - unit: mm + x_pos: AN13-AR/DG-EPOS/BPM.09/x_pos + y_pos: AN13-AR/DG-EPOS/BPM.09/y_pos - type: pyaml.magnet.cfm_magnet name: SH9_COR_011 mapping: @@ -13017,14 +12327,8 @@ devices: name: BPM_116 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN13-AR/DG-EPOS/BPM.10/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN13-AR/DG-EPOS/BPM.10/y_pos - unit: mm + x_pos: AN13-AR/DG-EPOS/BPM.10/x_pos + y_pos: AN13-AR/DG-EPOS/BPM.10/y_pos - type: pyaml.magnet.cfm_magnet name: SH7_COR_011 mapping: @@ -13069,26 +12373,14 @@ devices: name: BPM_117 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN14-SD/DG-EPOS/BPM.01/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN14-SD/DG-EPOS/BPM.01/y_pos - unit: mm + x_pos: AN14-SD/DG-EPOS/BPM.01/x_pos + y_pos: AN14-SD/DG-EPOS/BPM.01/y_pos - type: pyaml.bpm.bpm name: BPM_118 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN14-SD/DG-EPOS/BPM.02/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN14-SD/DG-EPOS/BPM.02/y_pos - unit: mm + x_pos: AN14-SD/DG-EPOS/BPM.02/x_pos + y_pos: AN14-SD/DG-EPOS/BPM.02/y_pos - type: pyaml.magnet.cfm_magnet name: OH7_QCORROCT_107_QT_001 mapping: @@ -13133,14 +12425,8 @@ devices: name: BPM_119 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN14-AR/DG-EPOS/BPM.03/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN14-AR/DG-EPOS/BPM.03/y_pos - unit: mm + x_pos: AN14-AR/DG-EPOS/BPM.03/x_pos + y_pos: AN14-AR/DG-EPOS/BPM.03/y_pos - type: pyaml.magnet.quadrupole name: QCORR_138 model: @@ -13237,14 +12523,8 @@ devices: name: BPM_120 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN14-AR/DG-EPOS/BPM.04/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN14-AR/DG-EPOS/BPM.04/y_pos - unit: mm + x_pos: AN14-AR/DG-EPOS/BPM.04/x_pos + y_pos: AN14-AR/DG-EPOS/BPM.04/y_pos - type: pyaml.magnet.cfm_magnet name: SXD41_VCOR_003 mapping: @@ -13328,14 +12608,8 @@ devices: name: BPM_121 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN14-AR/DG-EPOS/BPM.05/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN14-AR/DG-EPOS/BPM.05/y_pos - unit: mm + x_pos: AN14-AR/DG-EPOS/BPM.05/x_pos + y_pos: AN14-AR/DG-EPOS/BPM.05/y_pos - type: pyaml.magnet.cfm_magnet name: SXD4_VCOR_003 mapping: @@ -13435,14 +12709,8 @@ devices: name: BPM_122 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN14-AR/DG-EPOS/BPM.06/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN14-AR/DG-EPOS/BPM.06/y_pos - unit: mm + x_pos: AN14-AR/DG-EPOS/BPM.06/x_pos + y_pos: AN14-AR/DG-EPOS/BPM.06/y_pos - type: pyaml.magnet.cfm_magnet name: SH12_COR_005 mapping: @@ -13501,14 +12769,8 @@ devices: name: BPM_123 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN14-AR/DG-EPOS/BPM.07/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN14-AR/DG-EPOS/BPM.07/y_pos - unit: mm + x_pos: AN14-AR/DG-EPOS/BPM.07/x_pos + y_pos: AN14-AR/DG-EPOS/BPM.07/y_pos - type: pyaml.magnet.cfm_magnet name: SH10_COR_005 mapping: @@ -13553,26 +12815,14 @@ devices: name: BPM_124 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN15-SD/DG-EPOS/BPM.01/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN15-SD/DG-EPOS/BPM.01/y_pos - unit: mm + x_pos: AN15-SD/DG-EPOS/BPM.01/x_pos + y_pos: AN15-SD/DG-EPOS/BPM.01/y_pos - type: pyaml.bpm.bpm name: BPM_125 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN15-SD/DG-EPOS/BPM.02/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN15-SD/DG-EPOS/BPM.02/y_pos - unit: mm + x_pos: AN15-SD/DG-EPOS/BPM.02/x_pos + y_pos: AN15-SD/DG-EPOS/BPM.02/y_pos - type: pyaml.magnet.cfm_magnet name: OH10_QCORROCT_113_QT_001 mapping: @@ -13617,14 +12867,8 @@ devices: name: BPM_126 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN15-AR/DG-EPOS/BPM.03/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN15-AR/DG-EPOS/BPM.03/y_pos - unit: mm + x_pos: AN15-AR/DG-EPOS/BPM.03/x_pos + y_pos: AN15-AR/DG-EPOS/BPM.03/y_pos - type: pyaml.magnet.cfm_magnet name: OH11_QCORROCT_114_001 mapping: @@ -13728,14 +12972,8 @@ devices: name: BPM_127 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN15-AR/DG-EPOS/BPM.04/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN15-AR/DG-EPOS/BPM.04/y_pos - unit: mm + x_pos: AN15-AR/DG-EPOS/BPM.04/x_pos + y_pos: AN15-AR/DG-EPOS/BPM.04/y_pos - type: pyaml.magnet.cfm_magnet name: SXD51_VCOR_003 mapping: @@ -13819,14 +13057,8 @@ devices: name: BPM_128 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN15-AR/DG-EPOS/BPM.05/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN15-AR/DG-EPOS/BPM.05/y_pos - unit: mm + x_pos: AN15-AR/DG-EPOS/BPM.05/x_pos + y_pos: AN15-AR/DG-EPOS/BPM.05/y_pos - type: pyaml.magnet.cfm_magnet name: SXD5_VCOR_007 mapping: @@ -13910,14 +13142,8 @@ devices: name: BPM_129 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN15-AR/DG-EPOS/BPM.06/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN15-AR/DG-EPOS/BPM.06/y_pos - unit: mm + x_pos: AN15-AR/DG-EPOS/BPM.06/x_pos + y_pos: AN15-AR/DG-EPOS/BPM.06/y_pos - type: pyaml.magnet.cfm_magnet name: SXD53_VCOR_003 mapping: @@ -14001,14 +13227,8 @@ devices: name: BPM_130 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN15-AR/DG-EPOS/BPM.07/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN15-AR/DG-EPOS/BPM.07/y_pos - unit: mm + x_pos: AN15-AR/DG-EPOS/BPM.07/x_pos + y_pos: AN15-AR/DG-EPOS/BPM.07/y_pos - type: pyaml.magnet.cfm_magnet name: SXD5_VCOR_008 mapping: @@ -14092,14 +13312,8 @@ devices: name: BPM_131 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN15-AR/DG-EPOS/BPM.08/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN15-AR/DG-EPOS/BPM.08/y_pos - unit: mm + x_pos: AN15-AR/DG-EPOS/BPM.08/x_pos + y_pos: AN15-AR/DG-EPOS/BPM.08/y_pos - type: pyaml.magnet.cfm_magnet name: SXD5_VCOR_009 mapping: @@ -14199,14 +13413,8 @@ devices: name: BPM_132 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN15-AR/DG-EPOS/BPM.09/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN15-AR/DG-EPOS/BPM.09/y_pos - unit: mm + x_pos: AN15-AR/DG-EPOS/BPM.09/x_pos + y_pos: AN15-AR/DG-EPOS/BPM.09/y_pos - type: pyaml.magnet.quadrupole name: QCORR_156 model: @@ -14236,14 +13444,8 @@ devices: name: BPM_133 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN15-AR/DG-EPOS/BPM.10/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN15-AR/DG-EPOS/BPM.10/y_pos - unit: mm + x_pos: AN15-AR/DG-EPOS/BPM.10/x_pos + y_pos: AN15-AR/DG-EPOS/BPM.10/y_pos - type: pyaml.magnet.cfm_magnet name: SH14_HCOR_003 mapping: @@ -14316,26 +13518,14 @@ devices: name: BPM_134 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN16-SD/DG-EPOS/BPM.01/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN16-SD/DG-EPOS/BPM.01/y_pos - unit: mm + x_pos: AN16-SD/DG-EPOS/BPM.01/x_pos + y_pos: AN16-SD/DG-EPOS/BPM.01/y_pos - type: pyaml.bpm.bpm name: BPM_135 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN16-SD/DG-EPOS/BPM.02/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN16-SD/DG-EPOS/BPM.02/y_pos - unit: mm + x_pos: AN16-SD/DG-EPOS/BPM.02/x_pos + y_pos: AN16-SD/DG-EPOS/BPM.02/y_pos - type: pyaml.magnet.cfm_magnet name: OH16_QCORROCT_123_001 mapping: @@ -14412,26 +13602,14 @@ devices: name: BPM_136 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN16-SD/DG-EPOS/BPM.03/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN16-SD/DG-EPOS/BPM.03/y_pos - unit: mm + x_pos: AN16-SD/DG-EPOS/BPM.03/x_pos + y_pos: AN16-SD/DG-EPOS/BPM.03/y_pos - type: pyaml.bpm.bpm name: BPM_137 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN16-SD/DG-EPOS/BPM.04/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN16-SD/DG-EPOS/BPM.04/y_pos - unit: mm + x_pos: AN16-SD/DG-EPOS/BPM.04/x_pos + y_pos: AN16-SD/DG-EPOS/BPM.04/y_pos - type: pyaml.magnet.cfm_magnet name: OH132_QCORROCT_125_001 mapping: @@ -14504,14 +13682,8 @@ devices: name: BPM_138 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN16-AR/DG-EPOS/BPM.05/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN16-AR/DG-EPOS/BPM.05/y_pos - unit: mm + x_pos: AN16-AR/DG-EPOS/BPM.05/x_pos + y_pos: AN16-AR/DG-EPOS/BPM.05/y_pos - type: pyaml.magnet.cfm_magnet name: SH15_VCOR_004 mapping: @@ -14586,14 +13758,8 @@ devices: name: BPM_139 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN16-AR/DG-EPOS/BPM.06/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN16-AR/DG-EPOS/BPM.06/y_pos - unit: mm + x_pos: AN16-AR/DG-EPOS/BPM.06/x_pos + y_pos: AN16-AR/DG-EPOS/BPM.06/y_pos - type: pyaml.magnet.cfm_magnet name: SXD52_VCOR_004 mapping: @@ -14677,14 +13843,8 @@ devices: name: BPM_140 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN16-AR/DG-EPOS/BPM.07/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN16-AR/DG-EPOS/BPM.07/y_pos - unit: mm + x_pos: AN16-AR/DG-EPOS/BPM.07/x_pos + y_pos: AN16-AR/DG-EPOS/BPM.07/y_pos - type: pyaml.magnet.cfm_magnet name: SXD5_VCOR_010 mapping: @@ -14768,14 +13928,8 @@ devices: name: BPM_141 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN16-AR/DG-EPOS/BPM.08/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN16-AR/DG-EPOS/BPM.08/y_pos - unit: mm + x_pos: AN16-AR/DG-EPOS/BPM.08/x_pos + y_pos: AN16-AR/DG-EPOS/BPM.08/y_pos - type: pyaml.magnet.cfm_magnet name: SXD53_VCOR_004 mapping: @@ -14859,14 +14013,8 @@ devices: name: BPM_142 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN16-AR/DG-EPOS/BPM.09/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN16-AR/DG-EPOS/BPM.09/y_pos - unit: mm + x_pos: AN16-AR/DG-EPOS/BPM.09/x_pos + y_pos: AN16-AR/DG-EPOS/BPM.09/y_pos - type: pyaml.magnet.cfm_magnet name: SXD5_VCOR_011 mapping: @@ -14950,14 +14098,8 @@ devices: name: BPM_143 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN16-AR/DG-EPOS/BPM.10/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN16-AR/DG-EPOS/BPM.10/y_pos - unit: mm + x_pos: AN16-AR/DG-EPOS/BPM.10/x_pos + y_pos: AN16-AR/DG-EPOS/BPM.10/y_pos - type: pyaml.magnet.cfm_magnet name: SXD5_VCOR_012 mapping: @@ -15057,14 +14199,8 @@ devices: name: BPM_144 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN16-AR/DG-EPOS/BPM.11/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN16-AR/DG-EPOS/BPM.11/y_pos - unit: mm + x_pos: AN16-AR/DG-EPOS/BPM.11/x_pos + y_pos: AN16-AR/DG-EPOS/BPM.11/y_pos - type: pyaml.magnet.cfm_magnet name: SH12_COR_007 mapping: @@ -15123,14 +14259,8 @@ devices: name: BPM_145 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN16-AR/DG-EPOS/BPM.12/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN16-AR/DG-EPOS/BPM.12/y_pos - unit: mm + x_pos: AN16-AR/DG-EPOS/BPM.12/x_pos + y_pos: AN16-AR/DG-EPOS/BPM.12/y_pos - type: pyaml.magnet.cfm_magnet name: SH10_COR_007 mapping: @@ -15175,26 +14305,14 @@ devices: name: BPM_146 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN17-SD/DG-EPOS/BPM.01/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN17-SD/DG-EPOS/BPM.01/y_pos - unit: mm + x_pos: AN17-SD/DG-EPOS/BPM.01/x_pos + y_pos: AN17-SD/DG-EPOS/BPM.01/y_pos - type: pyaml.bpm.bpm name: BPM_147 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN17-SD/DG-EPOS/BPM.02/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN17-SD/DG-EPOS/BPM.02/y_pos - unit: mm + x_pos: AN17-SD/DG-EPOS/BPM.02/x_pos + y_pos: AN17-SD/DG-EPOS/BPM.02/y_pos - type: pyaml.magnet.cfm_magnet name: OH10_QCORROCT_135_QT_001 mapping: @@ -15239,14 +14357,8 @@ devices: name: BPM_148 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN17-AR/DG-EPOS/BPM.03/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN17-AR/DG-EPOS/BPM.03/y_pos - unit: mm + x_pos: AN17-AR/DG-EPOS/BPM.03/x_pos + y_pos: AN17-AR/DG-EPOS/BPM.03/y_pos - type: pyaml.magnet.cfm_magnet name: OH11_QCORROCT_136_001 mapping: @@ -15350,14 +14462,8 @@ devices: name: BPM_149 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN17-AR/DG-EPOS/BPM.04/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN17-AR/DG-EPOS/BPM.04/y_pos - unit: mm + x_pos: AN17-AR/DG-EPOS/BPM.04/x_pos + y_pos: AN17-AR/DG-EPOS/BPM.04/y_pos - type: pyaml.magnet.cfm_magnet name: SXD42_VCOR_004 mapping: @@ -15441,14 +14547,8 @@ devices: name: BPM_150 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN17-AR/DG-EPOS/BPM.05/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN17-AR/DG-EPOS/BPM.05/y_pos - unit: mm + x_pos: AN17-AR/DG-EPOS/BPM.05/x_pos + y_pos: AN17-AR/DG-EPOS/BPM.05/y_pos - type: pyaml.magnet.cfm_magnet name: SXD4_VCOR_004 mapping: @@ -15548,14 +14648,8 @@ devices: name: BPM_151 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN17-AR/DG-EPOS/BPM.06/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN17-AR/DG-EPOS/BPM.06/y_pos - unit: mm + x_pos: AN17-AR/DG-EPOS/BPM.06/x_pos + y_pos: AN17-AR/DG-EPOS/BPM.06/y_pos - type: pyaml.magnet.cfm_magnet name: SH9_COR_013 mapping: @@ -15607,14 +14701,8 @@ devices: name: BPM_152 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN17-AR/DG-EPOS/BPM.07/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN17-AR/DG-EPOS/BPM.07/y_pos - unit: mm + x_pos: AN17-AR/DG-EPOS/BPM.07/x_pos + y_pos: AN17-AR/DG-EPOS/BPM.07/y_pos - type: pyaml.magnet.cfm_magnet name: SH7_COR_013 mapping: @@ -15659,26 +14747,14 @@ devices: name: BPM_153 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN18-SD/DG-EPOS/BPM.01/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN18-SD/DG-EPOS/BPM.01/y_pos - unit: mm + x_pos: AN18-SD/DG-EPOS/BPM.01/x_pos + y_pos: AN18-SD/DG-EPOS/BPM.01/y_pos - type: pyaml.bpm.bpm name: BPM_154 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN18-SD/DG-EPOS/BPM.02/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN18-SD/DG-EPOS/BPM.02/y_pos - unit: mm + x_pos: AN18-SD/DG-EPOS/BPM.02/x_pos + y_pos: AN18-SD/DG-EPOS/BPM.02/y_pos - type: pyaml.magnet.cfm_magnet name: OH7_QCORROCT_141_QT_001 mapping: @@ -15723,14 +14799,8 @@ devices: name: BPM_155 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN18-AR/DG-EPOS/BPM.03/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN18-AR/DG-EPOS/BPM.03/y_pos - unit: mm + x_pos: AN18-AR/DG-EPOS/BPM.03/x_pos + y_pos: AN18-AR/DG-EPOS/BPM.03/y_pos - type: pyaml.magnet.quadrupole name: QCORR_176 model: @@ -15827,14 +14897,8 @@ devices: name: BPM_156 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN18-AR/DG-EPOS/BPM.04/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN18-AR/DG-EPOS/BPM.04/y_pos - unit: mm + x_pos: AN18-AR/DG-EPOS/BPM.04/x_pos + y_pos: AN18-AR/DG-EPOS/BPM.04/y_pos - type: pyaml.magnet.cfm_magnet name: SXD32_VCOR_004 mapping: @@ -15918,14 +14982,8 @@ devices: name: BPM_157 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN18-AR/DG-EPOS/BPM.05/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN18-AR/DG-EPOS/BPM.05/y_pos - unit: mm + x_pos: AN18-AR/DG-EPOS/BPM.05/x_pos + y_pos: AN18-AR/DG-EPOS/BPM.05/y_pos - type: pyaml.magnet.cfm_magnet name: SXD3_VCOR_010 mapping: @@ -16009,14 +15067,8 @@ devices: name: BPM_158 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN18-AR/DG-EPOS/BPM.06/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN18-AR/DG-EPOS/BPM.06/y_pos - unit: mm + x_pos: AN18-AR/DG-EPOS/BPM.06/x_pos + y_pos: AN18-AR/DG-EPOS/BPM.06/y_pos - type: pyaml.magnet.cfm_magnet name: SXD33_VCOR_004 mapping: @@ -16100,14 +15152,8 @@ devices: name: BPM_159 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN18-AR/DG-EPOS/BPM.07/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN18-AR/DG-EPOS/BPM.07/y_pos - unit: mm + x_pos: AN18-AR/DG-EPOS/BPM.07/x_pos + y_pos: AN18-AR/DG-EPOS/BPM.07/y_pos - type: pyaml.magnet.cfm_magnet name: SXD3_VCOR_011 mapping: @@ -16191,14 +15237,8 @@ devices: name: BPM_160 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN18-AR/DG-EPOS/BPM.08/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN18-AR/DG-EPOS/BPM.08/y_pos - unit: mm + x_pos: AN18-AR/DG-EPOS/BPM.08/x_pos + y_pos: AN18-AR/DG-EPOS/BPM.08/y_pos - type: pyaml.magnet.cfm_magnet name: SXD3_VCOR_012 mapping: @@ -16298,14 +15338,8 @@ devices: name: BPM_161 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN18-AR/DG-EPOS/BPM.09/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN18-AR/DG-EPOS/BPM.09/y_pos - unit: mm + x_pos: AN18-AR/DG-EPOS/BPM.09/x_pos + y_pos: AN18-AR/DG-EPOS/BPM.09/y_pos - type: pyaml.magnet.cfm_magnet name: SH9_COR_015 mapping: @@ -16357,14 +15391,8 @@ devices: name: BPM_162 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN18-AR/DG-EPOS/BPM.10/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN18-AR/DG-EPOS/BPM.10/y_pos - unit: mm + x_pos: AN18-AR/DG-EPOS/BPM.10/x_pos + y_pos: AN18-AR/DG-EPOS/BPM.10/y_pos - type: pyaml.magnet.cfm_magnet name: SH7_COR_015 mapping: @@ -16409,26 +15437,14 @@ devices: name: BPM_163 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN19-SD/DG-EPOS/BPM.01/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN19-SD/DG-EPOS/BPM.01/y_pos - unit: mm + x_pos: AN19-SD/DG-EPOS/BPM.01/x_pos + y_pos: AN19-SD/DG-EPOS/BPM.01/y_pos - type: pyaml.bpm.bpm name: BPM_164 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN19-SD/DG-EPOS/BPM.02/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN19-SD/DG-EPOS/BPM.02/y_pos - unit: mm + x_pos: AN19-SD/DG-EPOS/BPM.02/x_pos + y_pos: AN19-SD/DG-EPOS/BPM.02/y_pos - type: pyaml.magnet.cfm_magnet name: OH7_QCORROCT_149_QT_001 mapping: @@ -16473,14 +15489,8 @@ devices: name: BPM_165 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN19-AR/DG-EPOS/BPM.03/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN19-AR/DG-EPOS/BPM.03/y_pos - unit: mm + x_pos: AN19-AR/DG-EPOS/BPM.03/x_pos + y_pos: AN19-AR/DG-EPOS/BPM.03/y_pos - type: pyaml.magnet.quadrupole name: QCORR_190 model: @@ -16577,14 +15587,8 @@ devices: name: BPM_166 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN19-AR/DG-EPOS/BPM.04/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN19-AR/DG-EPOS/BPM.04/y_pos - unit: mm + x_pos: AN19-AR/DG-EPOS/BPM.04/x_pos + y_pos: AN19-AR/DG-EPOS/BPM.04/y_pos - type: pyaml.magnet.cfm_magnet name: SXD22_VCOR_004 mapping: @@ -16668,14 +15672,8 @@ devices: name: BPM_167 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN19-AR/DG-EPOS/BPM.05/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN19-AR/DG-EPOS/BPM.05/y_pos - unit: mm + x_pos: AN19-AR/DG-EPOS/BPM.05/x_pos + y_pos: AN19-AR/DG-EPOS/BPM.05/y_pos - type: pyaml.magnet.cfm_magnet name: SXD2_VCOR_004 mapping: @@ -16775,14 +15773,8 @@ devices: name: BPM_168 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN19-AR/DG-EPOS/BPM.06/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN19-AR/DG-EPOS/BPM.06/y_pos - unit: mm + x_pos: AN19-AR/DG-EPOS/BPM.06/x_pos + y_pos: AN19-AR/DG-EPOS/BPM.06/y_pos - type: pyaml.magnet.cfm_magnet name: SH6_COR_007 mapping: @@ -16841,14 +15833,8 @@ devices: name: BPM_169 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN19-AR/DG-EPOS/BPM.07/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN19-AR/DG-EPOS/BPM.07/y_pos - unit: mm + x_pos: AN19-AR/DG-EPOS/BPM.07/x_pos + y_pos: AN19-AR/DG-EPOS/BPM.07/y_pos - type: pyaml.magnet.cfm_magnet name: SH4_COR_007 mapping: @@ -16893,26 +15879,14 @@ devices: name: BPM_170 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN20-SD/DG-EPOS/BPM.01/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN20-SD/DG-EPOS/BPM.01/y_pos - unit: mm + x_pos: AN20-SD/DG-EPOS/BPM.01/x_pos + y_pos: AN20-SD/DG-EPOS/BPM.01/y_pos - type: pyaml.bpm.bpm name: BPM_171 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN20-SD/DG-EPOS/BPM.02/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN20-SD/DG-EPOS/BPM.02/y_pos - unit: mm + x_pos: AN20-SD/DG-EPOS/BPM.02/x_pos + y_pos: AN20-SD/DG-EPOS/BPM.02/y_pos - type: pyaml.magnet.cfm_magnet name: OH4_QCORROCT_155_QT_001 mapping: @@ -16957,14 +15931,8 @@ devices: name: BPM_172 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN20-AR/DG-EPOS/BPM.03/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN20-AR/DG-EPOS/BPM.03/y_pos - unit: mm + x_pos: AN20-AR/DG-EPOS/BPM.03/x_pos + y_pos: AN20-AR/DG-EPOS/BPM.03/y_pos - type: pyaml.magnet.cfm_magnet name: OH5_QCORROCT_156_001 mapping: @@ -17068,14 +16036,8 @@ devices: name: BPM_173 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN20-AR/DG-EPOS/BPM.04/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN20-AR/DG-EPOS/BPM.04/y_pos - unit: mm + x_pos: AN20-AR/DG-EPOS/BPM.04/x_pos + y_pos: AN20-AR/DG-EPOS/BPM.04/y_pos - type: pyaml.magnet.cfm_magnet name: SXD12_VCOR_004 mapping: @@ -17159,14 +16121,8 @@ devices: name: BPM_174 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN20-AR/DG-EPOS/BPM.05/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN20-AR/DG-EPOS/BPM.05/y_pos - unit: mm + x_pos: AN20-AR/DG-EPOS/BPM.05/x_pos + y_pos: AN20-AR/DG-EPOS/BPM.05/y_pos - type: pyaml.magnet.cfm_magnet name: SXD1_VCOR_010 mapping: @@ -17250,14 +16206,8 @@ devices: name: BPM_175 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN20-AR/DG-EPOS/BPM.06/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN20-AR/DG-EPOS/BPM.06/y_pos - unit: mm + x_pos: AN20-AR/DG-EPOS/BPM.06/x_pos + y_pos: AN20-AR/DG-EPOS/BPM.06/y_pos - type: pyaml.magnet.cfm_magnet name: SXD13_VCOR_004 mapping: @@ -17341,14 +16291,8 @@ devices: name: BPM_176 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN20-AR/DG-EPOS/BPM.07/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN20-AR/DG-EPOS/BPM.07/y_pos - unit: mm + x_pos: AN20-AR/DG-EPOS/BPM.07/x_pos + y_pos: AN20-AR/DG-EPOS/BPM.07/y_pos - type: pyaml.magnet.cfm_magnet name: SXD1_VCOR_011 mapping: @@ -17432,14 +16376,8 @@ devices: name: BPM_177 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN20-AR/DG-EPOS/BPM.08/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN20-AR/DG-EPOS/BPM.08/y_pos - unit: mm + x_pos: AN20-AR/DG-EPOS/BPM.08/x_pos + y_pos: AN20-AR/DG-EPOS/BPM.08/y_pos - type: pyaml.magnet.cfm_magnet name: SXD1_VCOR_012 mapping: @@ -17539,14 +16477,8 @@ devices: name: BPM_178 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN20-AR/DG-EPOS/BPM.09/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN20-AR/DG-EPOS/BPM.09/y_pos - unit: mm + x_pos: AN20-AR/DG-EPOS/BPM.09/x_pos + y_pos: AN20-AR/DG-EPOS/BPM.09/y_pos - type: pyaml.magnet.quadrupole name: QCORR_208 model: @@ -17576,14 +16508,8 @@ devices: name: BPM_179 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN20-AR/DG-EPOS/BPM.10/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN20-AR/DG-EPOS/BPM.10/y_pos - unit: mm + x_pos: AN20-AR/DG-EPOS/BPM.10/x_pos + y_pos: AN20-AR/DG-EPOS/BPM.10/y_pos - type: pyaml.magnet.cfm_magnet name: OH2_QCORROCT_163_001 mapping: @@ -17660,19 +16586,13 @@ devices: name: BPM_180 model: type: pyaml.bpm.bpm_simple_model - x_pos: - type: tango.pyaml.attribute_read_only - attribute: AN01-SD/DG-EPOS/BPM.01/x_pos - unit: mm - y_pos: - type: tango.pyaml.attribute_read_only - attribute: AN01-SD/DG-EPOS/BPM.01/y_pos - unit: mm + x_pos: AN01-SD/DG-EPOS/BPM.01/x_pos + y_pos: AN01-SD/DG-EPOS/BPM.01/y_pos - type: pyaml.rf.rf_plant name: RF masterclock: type: tango.pyaml.attribute - attribute: simulator/ringsimulator/ringsimulator/RfFrequency + attribute: pichon/digitaltwin/ringsimulator/RfFrequency unit: Hz transmitters: - type: pyaml.rf.rf_transmitter @@ -17682,29 +16602,2177 @@ devices: distribution: 1 voltage: type: tango.pyaml.attribute - attribute: simulator/ringsimulator/ringsimulator/RfVoltage + attribute: pichon/digitaltwin/ringsimulator/RfVoltage unit: V - type: pyaml.diagnostics.tune_monitor name: BETATRON_TUNE tune_h: - type: tango.pyaml.attribute_read_only - attribute: simulator/ringsimulator/ringsimulator/Tune_h + type: tango.pyaml.attribute + attribute: pichon/digitaltwin/ringsimulator/Tune_h tune_v: - type: tango.pyaml.attribute_read_only - attribute: simulator/ringsimulator/ringsimulator/Tune_v -- type: pyaml.tuning_tools.tune - name: DEFAULT_TUNE_CORRECTION - quad_array: QCORR - betatron_tune: BETATRON_TUNE - delta: 1e-3 -- type: pyaml.diagnostics.chromaticity_monitor - name: DEFAULT_CHROMATICITY_MEASUREMENT - betatron_tune: BETATRON_TUNE - RFfreq: RF - fit_order: 2 - N_tune_meas: 3 - N_step: 15 - Sleep_between_meas: 2 - Sleep_between_RFvar: 2 - E_delta: 1e-3 - Max_E_delta: 1e-2 + type: tango.pyaml.attribute + attribute: pichon/digitaltwin/ringsimulator/Tune_v +control_system_catalogs: +- type: pyaml.configuration.catalog + name: live_catalog + refs: + - type: pyaml.configuration.catalog_entry + reference: AN01-SD/DG-EPOS/BPM.02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN01-SD/DG-EPOS/BPM.02/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN01-SD/DG-EPOS/BPM.02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN01-SD/DG-EPOS/BPM.02/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN01-AR/DG-EPOS/BPM.03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN01-AR/DG-EPOS/BPM.03/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN01-AR/DG-EPOS/BPM.03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN01-AR/DG-EPOS/BPM.03/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN01-AR/DG-EPOS/BPM.04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN01-AR/DG-EPOS/BPM.04/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN01-AR/DG-EPOS/BPM.04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN01-AR/DG-EPOS/BPM.04/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN01-AR/DG-EPOS/BPM.05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN01-AR/DG-EPOS/BPM.05/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN01-AR/DG-EPOS/BPM.05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN01-AR/DG-EPOS/BPM.05/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN01-AR/DG-EPOS/BPM.06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN01-AR/DG-EPOS/BPM.06/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN01-AR/DG-EPOS/BPM.06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN01-AR/DG-EPOS/BPM.06/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN01-AR/DG-EPOS/BPM.07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN01-AR/DG-EPOS/BPM.07/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN01-AR/DG-EPOS/BPM.07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN01-AR/DG-EPOS/BPM.07/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN01-AR/DG-EPOS/BPM.08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN01-AR/DG-EPOS/BPM.08/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN01-AR/DG-EPOS/BPM.08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN01-AR/DG-EPOS/BPM.08/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN01-AR/DG-EPOS/BPM.09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN01-AR/DG-EPOS/BPM.09/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN01-AR/DG-EPOS/BPM.09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN01-AR/DG-EPOS/BPM.09/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN01-AR/DG-EPOS/BPM.10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN01-AR/DG-EPOS/BPM.10/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN01-AR/DG-EPOS/BPM.10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN01-AR/DG-EPOS/BPM.10/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN02-SD/DG-EPOS/BPM.01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN02-SD/DG-EPOS/BPM.01/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN02-SD/DG-EPOS/BPM.01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN02-SD/DG-EPOS/BPM.01/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN02-SD/DG-EPOS/BPM.02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN02-SD/DG-EPOS/BPM.02/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN02-SD/DG-EPOS/BPM.02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN02-SD/DG-EPOS/BPM.02/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN02-AR/DG-EPOS/BPM.03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN02-AR/DG-EPOS/BPM.03/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN02-AR/DG-EPOS/BPM.03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN02-AR/DG-EPOS/BPM.03/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN02-AR/DG-EPOS/BPM.04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN02-AR/DG-EPOS/BPM.04/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN02-AR/DG-EPOS/BPM.04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN02-AR/DG-EPOS/BPM.04/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN02-AR/DG-EPOS/BPM.05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN02-AR/DG-EPOS/BPM.05/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN02-AR/DG-EPOS/BPM.05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN02-AR/DG-EPOS/BPM.05/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN02-AR/DG-EPOS/BPM.06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN02-AR/DG-EPOS/BPM.06/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN02-AR/DG-EPOS/BPM.06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN02-AR/DG-EPOS/BPM.06/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN02-AR/DG-EPOS/BPM.07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN02-AR/DG-EPOS/BPM.07/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN02-AR/DG-EPOS/BPM.07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN02-AR/DG-EPOS/BPM.07/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN03-SD/DG-EPOS/BPM.01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN03-SD/DG-EPOS/BPM.01/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN03-SD/DG-EPOS/BPM.01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN03-SD/DG-EPOS/BPM.01/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN03-SD/DG-EPOS/BPM.02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN03-SD/DG-EPOS/BPM.02/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN03-SD/DG-EPOS/BPM.02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN03-SD/DG-EPOS/BPM.02/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN03-AR/DG-EPOS/BPM.03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN03-AR/DG-EPOS/BPM.03/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN03-AR/DG-EPOS/BPM.03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN03-AR/DG-EPOS/BPM.03/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN03-AR/DG-EPOS/BPM.04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN03-AR/DG-EPOS/BPM.04/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN03-AR/DG-EPOS/BPM.04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN03-AR/DG-EPOS/BPM.04/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN03-AR/DG-EPOS/BPM.05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN03-AR/DG-EPOS/BPM.05/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN03-AR/DG-EPOS/BPM.05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN03-AR/DG-EPOS/BPM.05/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN03-AR/DG-EPOS/BPM.06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN03-AR/DG-EPOS/BPM.06/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN03-AR/DG-EPOS/BPM.06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN03-AR/DG-EPOS/BPM.06/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN03-AR/DG-EPOS/BPM.07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN03-AR/DG-EPOS/BPM.07/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN03-AR/DG-EPOS/BPM.07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN03-AR/DG-EPOS/BPM.07/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN03-AR/DG-EPOS/BPM.08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN03-AR/DG-EPOS/BPM.08/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN03-AR/DG-EPOS/BPM.08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN03-AR/DG-EPOS/BPM.08/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN03-AR/DG-EPOS/BPM.09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN03-AR/DG-EPOS/BPM.09/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN03-AR/DG-EPOS/BPM.09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN03-AR/DG-EPOS/BPM.09/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN03-AR/DG-EPOS/BPM.10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN03-AR/DG-EPOS/BPM.10/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN03-AR/DG-EPOS/BPM.10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN03-AR/DG-EPOS/BPM.10/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN04-SD/DG-EPOS/BPM.01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN04-SD/DG-EPOS/BPM.01/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN04-SD/DG-EPOS/BPM.01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN04-SD/DG-EPOS/BPM.01/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN04-SD/DG-EPOS/BPM.02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN04-SD/DG-EPOS/BPM.02/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN04-SD/DG-EPOS/BPM.02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN04-SD/DG-EPOS/BPM.02/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN04-AR/DG-EPOS/BPM.03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN04-AR/DG-EPOS/BPM.03/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN04-AR/DG-EPOS/BPM.03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN04-AR/DG-EPOS/BPM.03/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN04-AR/DG-EPOS/BPM.04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN04-AR/DG-EPOS/BPM.04/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN04-AR/DG-EPOS/BPM.04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN04-AR/DG-EPOS/BPM.04/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN04-AR/DG-EPOS/BPM.05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN04-AR/DG-EPOS/BPM.05/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN04-AR/DG-EPOS/BPM.05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN04-AR/DG-EPOS/BPM.05/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN04-AR/DG-EPOS/BPM.06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN04-AR/DG-EPOS/BPM.06/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN04-AR/DG-EPOS/BPM.06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN04-AR/DG-EPOS/BPM.06/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN04-AR/DG-EPOS/BPM.07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN04-AR/DG-EPOS/BPM.07/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN04-AR/DG-EPOS/BPM.07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN04-AR/DG-EPOS/BPM.07/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN05-SD/DG-EPOS/BPM.01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN05-SD/DG-EPOS/BPM.01/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN05-SD/DG-EPOS/BPM.01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN05-SD/DG-EPOS/BPM.01/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN05-SD/DG-EPOS/BPM.02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN05-SD/DG-EPOS/BPM.02/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN05-SD/DG-EPOS/BPM.02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN05-SD/DG-EPOS/BPM.02/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN05-AR/DG-EPOS/BPM.03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN05-AR/DG-EPOS/BPM.03/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN05-AR/DG-EPOS/BPM.03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN05-AR/DG-EPOS/BPM.03/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN05-AR/DG-EPOS/BPM.04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN05-AR/DG-EPOS/BPM.04/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN05-AR/DG-EPOS/BPM.04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN05-AR/DG-EPOS/BPM.04/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN05-AR/DG-EPOS/BPM.05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN05-AR/DG-EPOS/BPM.05/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN05-AR/DG-EPOS/BPM.05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN05-AR/DG-EPOS/BPM.05/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN05-AR/DG-EPOS/BPM.06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN05-AR/DG-EPOS/BPM.06/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN05-AR/DG-EPOS/BPM.06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN05-AR/DG-EPOS/BPM.06/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN05-AR/DG-EPOS/BPM.07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN05-AR/DG-EPOS/BPM.07/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN05-AR/DG-EPOS/BPM.07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN05-AR/DG-EPOS/BPM.07/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN05-AR/DG-EPOS/BPM.08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN05-AR/DG-EPOS/BPM.08/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN05-AR/DG-EPOS/BPM.08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN05-AR/DG-EPOS/BPM.08/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN05-AR/DG-EPOS/BPM.09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN05-AR/DG-EPOS/BPM.09/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN05-AR/DG-EPOS/BPM.09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN05-AR/DG-EPOS/BPM.09/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN05-AR/DG-EPOS/BPM.10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN05-AR/DG-EPOS/BPM.10/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN05-AR/DG-EPOS/BPM.10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN05-AR/DG-EPOS/BPM.10/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN06-SD/DG-EPOS/BPM.01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN06-SD/DG-EPOS/BPM.01/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN06-SD/DG-EPOS/BPM.01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN06-SD/DG-EPOS/BPM.01/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN06-SD/DG-EPOS/BPM.02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN06-SD/DG-EPOS/BPM.02/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN06-SD/DG-EPOS/BPM.02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN06-SD/DG-EPOS/BPM.02/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN06-SD/DG-EPOS/BPM.03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN06-SD/DG-EPOS/BPM.03/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN06-SD/DG-EPOS/BPM.03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN06-SD/DG-EPOS/BPM.03/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN06-SD/DG-EPOS/BPM.04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN06-SD/DG-EPOS/BPM.04/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN06-SD/DG-EPOS/BPM.04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN06-SD/DG-EPOS/BPM.04/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN06-AR/DG-EPOS/BPM.05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN06-AR/DG-EPOS/BPM.05/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN06-AR/DG-EPOS/BPM.05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN06-AR/DG-EPOS/BPM.05/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN06-AR/DG-EPOS/BPM.06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN06-AR/DG-EPOS/BPM.06/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN06-AR/DG-EPOS/BPM.06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN06-AR/DG-EPOS/BPM.06/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN06-AR/DG-EPOS/BPM.07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN06-AR/DG-EPOS/BPM.07/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN06-AR/DG-EPOS/BPM.07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN06-AR/DG-EPOS/BPM.07/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN06-AR/DG-EPOS/BPM.08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN06-AR/DG-EPOS/BPM.08/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN06-AR/DG-EPOS/BPM.08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN06-AR/DG-EPOS/BPM.08/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN06-AR/DG-EPOS/BPM.09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN06-AR/DG-EPOS/BPM.09/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN06-AR/DG-EPOS/BPM.09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN06-AR/DG-EPOS/BPM.09/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN06-AR/DG-EPOS/BPM.10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN06-AR/DG-EPOS/BPM.10/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN06-AR/DG-EPOS/BPM.10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN06-AR/DG-EPOS/BPM.10/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN06-AR/DG-EPOS/BPM.11/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN06-AR/DG-EPOS/BPM.11/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN06-AR/DG-EPOS/BPM.11/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN06-AR/DG-EPOS/BPM.11/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN06-AR/DG-EPOS/BPM.12/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN06-AR/DG-EPOS/BPM.12/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN06-AR/DG-EPOS/BPM.12/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN06-AR/DG-EPOS/BPM.12/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN07-SD/DG-EPOS/BPM.01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN07-SD/DG-EPOS/BPM.01/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN07-SD/DG-EPOS/BPM.01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN07-SD/DG-EPOS/BPM.01/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN07-SD/DG-EPOS/BPM.02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN07-SD/DG-EPOS/BPM.02/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN07-SD/DG-EPOS/BPM.02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN07-SD/DG-EPOS/BPM.02/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN07-AR/DG-EPOS/BPM.03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN07-AR/DG-EPOS/BPM.03/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN07-AR/DG-EPOS/BPM.03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN07-AR/DG-EPOS/BPM.03/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN07-AR/DG-EPOS/BPM.04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN07-AR/DG-EPOS/BPM.04/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN07-AR/DG-EPOS/BPM.04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN07-AR/DG-EPOS/BPM.04/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN07-AR/DG-EPOS/BPM.05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN07-AR/DG-EPOS/BPM.05/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN07-AR/DG-EPOS/BPM.05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN07-AR/DG-EPOS/BPM.05/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN07-AR/DG-EPOS/BPM.06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN07-AR/DG-EPOS/BPM.06/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN07-AR/DG-EPOS/BPM.06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN07-AR/DG-EPOS/BPM.06/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN07-AR/DG-EPOS/BPM.07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN07-AR/DG-EPOS/BPM.07/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN07-AR/DG-EPOS/BPM.07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN07-AR/DG-EPOS/BPM.07/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN08-SD/DG-EPOS/BPM.01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN08-SD/DG-EPOS/BPM.01/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN08-SD/DG-EPOS/BPM.01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN08-SD/DG-EPOS/BPM.01/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN08-SD/DG-EPOS/BPM.02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN08-SD/DG-EPOS/BPM.02/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN08-SD/DG-EPOS/BPM.02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN08-SD/DG-EPOS/BPM.02/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN08-AR/DG-EPOS/BPM.03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN08-AR/DG-EPOS/BPM.03/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN08-AR/DG-EPOS/BPM.03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN08-AR/DG-EPOS/BPM.03/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN08-AR/DG-EPOS/BPM.04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN08-AR/DG-EPOS/BPM.04/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN08-AR/DG-EPOS/BPM.04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN08-AR/DG-EPOS/BPM.04/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN08-AR/DG-EPOS/BPM.05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN08-AR/DG-EPOS/BPM.05/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN08-AR/DG-EPOS/BPM.05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN08-AR/DG-EPOS/BPM.05/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN08-AR/DG-EPOS/BPM.06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN08-AR/DG-EPOS/BPM.06/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN08-AR/DG-EPOS/BPM.06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN08-AR/DG-EPOS/BPM.06/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN08-AR/DG-EPOS/BPM.07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN08-AR/DG-EPOS/BPM.07/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN08-AR/DG-EPOS/BPM.07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN08-AR/DG-EPOS/BPM.07/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN08-AR/DG-EPOS/BPM.08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN08-AR/DG-EPOS/BPM.08/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN08-AR/DG-EPOS/BPM.08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN08-AR/DG-EPOS/BPM.08/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN08-AR/DG-EPOS/BPM.09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN08-AR/DG-EPOS/BPM.09/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN08-AR/DG-EPOS/BPM.09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN08-AR/DG-EPOS/BPM.09/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN08-AR/DG-EPOS/BPM.10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN08-AR/DG-EPOS/BPM.10/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN08-AR/DG-EPOS/BPM.10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN08-AR/DG-EPOS/BPM.10/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN09-SD/DG-EPOS/BPM.01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN09-SD/DG-EPOS/BPM.01/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN09-SD/DG-EPOS/BPM.01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN09-SD/DG-EPOS/BPM.01/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN09-SD/DG-EPOS/BPM.02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN09-SD/DG-EPOS/BPM.02/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN09-SD/DG-EPOS/BPM.02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN09-SD/DG-EPOS/BPM.02/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN09-AR/DG-EPOS/BPM.03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN09-AR/DG-EPOS/BPM.03/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN09-AR/DG-EPOS/BPM.03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN09-AR/DG-EPOS/BPM.03/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN09-AR/DG-EPOS/BPM.04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN09-AR/DG-EPOS/BPM.04/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN09-AR/DG-EPOS/BPM.04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN09-AR/DG-EPOS/BPM.04/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN09-AR/DG-EPOS/BPM.05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN09-AR/DG-EPOS/BPM.05/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN09-AR/DG-EPOS/BPM.05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN09-AR/DG-EPOS/BPM.05/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN09-AR/DG-EPOS/BPM.06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN09-AR/DG-EPOS/BPM.06/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN09-AR/DG-EPOS/BPM.06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN09-AR/DG-EPOS/BPM.06/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN09-AR/DG-EPOS/BPM.07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN09-AR/DG-EPOS/BPM.07/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN09-AR/DG-EPOS/BPM.07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN09-AR/DG-EPOS/BPM.07/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN10-SD/DG-EPOS/BPM.01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN10-SD/DG-EPOS/BPM.01/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN10-SD/DG-EPOS/BPM.01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN10-SD/DG-EPOS/BPM.01/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN10-SD/DG-EPOS/BPM.02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN10-SD/DG-EPOS/BPM.02/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN10-SD/DG-EPOS/BPM.02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN10-SD/DG-EPOS/BPM.02/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN10-AR/DG-EPOS/BPM.03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN10-AR/DG-EPOS/BPM.03/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN10-AR/DG-EPOS/BPM.03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN10-AR/DG-EPOS/BPM.03/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN10-AR/DG-EPOS/BPM.04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN10-AR/DG-EPOS/BPM.04/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN10-AR/DG-EPOS/BPM.04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN10-AR/DG-EPOS/BPM.04/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN10-AR/DG-EPOS/BPM.05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN10-AR/DG-EPOS/BPM.05/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN10-AR/DG-EPOS/BPM.05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN10-AR/DG-EPOS/BPM.05/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN10-AR/DG-EPOS/BPM.06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN10-AR/DG-EPOS/BPM.06/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN10-AR/DG-EPOS/BPM.06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN10-AR/DG-EPOS/BPM.06/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN10-AR/DG-EPOS/BPM.07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN10-AR/DG-EPOS/BPM.07/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN10-AR/DG-EPOS/BPM.07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN10-AR/DG-EPOS/BPM.07/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN10-AR/DG-EPOS/BPM.08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN10-AR/DG-EPOS/BPM.08/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN10-AR/DG-EPOS/BPM.08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN10-AR/DG-EPOS/BPM.08/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN10-AR/DG-EPOS/BPM.09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN10-AR/DG-EPOS/BPM.09/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN10-AR/DG-EPOS/BPM.09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN10-AR/DG-EPOS/BPM.09/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN10-AR/DG-EPOS/BPM.10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN10-AR/DG-EPOS/BPM.10/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN10-AR/DG-EPOS/BPM.10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN10-AR/DG-EPOS/BPM.10/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN11-SD/DG-EPOS/BPM.01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN11-SD/DG-EPOS/BPM.01/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN11-SD/DG-EPOS/BPM.01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN11-SD/DG-EPOS/BPM.01/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN11-SD/DG-EPOS/BPM.02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN11-SD/DG-EPOS/BPM.02/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN11-SD/DG-EPOS/BPM.02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN11-SD/DG-EPOS/BPM.02/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN11-AR/DG-EPOS/BPM.03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN11-AR/DG-EPOS/BPM.03/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN11-AR/DG-EPOS/BPM.03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN11-AR/DG-EPOS/BPM.03/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN11-AR/DG-EPOS/BPM.04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN11-AR/DG-EPOS/BPM.04/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN11-AR/DG-EPOS/BPM.04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN11-AR/DG-EPOS/BPM.04/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN11-AR/DG-EPOS/BPM.05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN11-AR/DG-EPOS/BPM.05/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN11-AR/DG-EPOS/BPM.05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN11-AR/DG-EPOS/BPM.05/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN11-AR/DG-EPOS/BPM.06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN11-AR/DG-EPOS/BPM.06/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN11-AR/DG-EPOS/BPM.06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN11-AR/DG-EPOS/BPM.06/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN11-AR/DG-EPOS/BPM.07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN11-AR/DG-EPOS/BPM.07/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN11-AR/DG-EPOS/BPM.07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN11-AR/DG-EPOS/BPM.07/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN11-AR/DG-EPOS/BPM.08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN11-AR/DG-EPOS/BPM.08/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN11-AR/DG-EPOS/BPM.08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN11-AR/DG-EPOS/BPM.08/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN11-AR/DG-EPOS/BPM.09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN11-AR/DG-EPOS/BPM.09/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN11-AR/DG-EPOS/BPM.09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN11-AR/DG-EPOS/BPM.09/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN11-AR/DG-EPOS/BPM.10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN11-AR/DG-EPOS/BPM.10/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN11-AR/DG-EPOS/BPM.10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN11-AR/DG-EPOS/BPM.10/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN12-SD/DG-EPOS/BPM.01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN12-SD/DG-EPOS/BPM.01/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN12-SD/DG-EPOS/BPM.01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN12-SD/DG-EPOS/BPM.01/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN12-SD/DG-EPOS/BPM.02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN12-SD/DG-EPOS/BPM.02/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN12-SD/DG-EPOS/BPM.02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN12-SD/DG-EPOS/BPM.02/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN12-AR/DG-EPOS/BPM.03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN12-AR/DG-EPOS/BPM.03/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN12-AR/DG-EPOS/BPM.03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN12-AR/DG-EPOS/BPM.03/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN12-AR/DG-EPOS/BPM.04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN12-AR/DG-EPOS/BPM.04/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN12-AR/DG-EPOS/BPM.04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN12-AR/DG-EPOS/BPM.04/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN12-AR/DG-EPOS/BPM.05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN12-AR/DG-EPOS/BPM.05/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN12-AR/DG-EPOS/BPM.05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN12-AR/DG-EPOS/BPM.05/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN12-AR/DG-EPOS/BPM.06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN12-AR/DG-EPOS/BPM.06/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN12-AR/DG-EPOS/BPM.06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN12-AR/DG-EPOS/BPM.06/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN12-AR/DG-EPOS/BPM.07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN12-AR/DG-EPOS/BPM.07/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN12-AR/DG-EPOS/BPM.07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN12-AR/DG-EPOS/BPM.07/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN13-SD/DG-EPOS/BPM.01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN13-SD/DG-EPOS/BPM.01/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN13-SD/DG-EPOS/BPM.01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN13-SD/DG-EPOS/BPM.01/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN13-SD/DG-EPOS/BPM.02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN13-SD/DG-EPOS/BPM.02/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN13-SD/DG-EPOS/BPM.02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN13-SD/DG-EPOS/BPM.02/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN13-AR/DG-EPOS/BPM.03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN13-AR/DG-EPOS/BPM.03/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN13-AR/DG-EPOS/BPM.03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN13-AR/DG-EPOS/BPM.03/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN13-AR/DG-EPOS/BPM.04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN13-AR/DG-EPOS/BPM.04/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN13-AR/DG-EPOS/BPM.04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN13-AR/DG-EPOS/BPM.04/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN13-AR/DG-EPOS/BPM.05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN13-AR/DG-EPOS/BPM.05/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN13-AR/DG-EPOS/BPM.05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN13-AR/DG-EPOS/BPM.05/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN13-AR/DG-EPOS/BPM.06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN13-AR/DG-EPOS/BPM.06/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN13-AR/DG-EPOS/BPM.06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN13-AR/DG-EPOS/BPM.06/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN13-AR/DG-EPOS/BPM.07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN13-AR/DG-EPOS/BPM.07/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN13-AR/DG-EPOS/BPM.07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN13-AR/DG-EPOS/BPM.07/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN13-AR/DG-EPOS/BPM.08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN13-AR/DG-EPOS/BPM.08/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN13-AR/DG-EPOS/BPM.08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN13-AR/DG-EPOS/BPM.08/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN13-AR/DG-EPOS/BPM.09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN13-AR/DG-EPOS/BPM.09/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN13-AR/DG-EPOS/BPM.09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN13-AR/DG-EPOS/BPM.09/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN13-AR/DG-EPOS/BPM.10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN13-AR/DG-EPOS/BPM.10/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN13-AR/DG-EPOS/BPM.10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN13-AR/DG-EPOS/BPM.10/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN14-SD/DG-EPOS/BPM.01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN14-SD/DG-EPOS/BPM.01/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN14-SD/DG-EPOS/BPM.01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN14-SD/DG-EPOS/BPM.01/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN14-SD/DG-EPOS/BPM.02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN14-SD/DG-EPOS/BPM.02/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN14-SD/DG-EPOS/BPM.02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN14-SD/DG-EPOS/BPM.02/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN14-AR/DG-EPOS/BPM.03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN14-AR/DG-EPOS/BPM.03/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN14-AR/DG-EPOS/BPM.03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN14-AR/DG-EPOS/BPM.03/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN14-AR/DG-EPOS/BPM.04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN14-AR/DG-EPOS/BPM.04/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN14-AR/DG-EPOS/BPM.04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN14-AR/DG-EPOS/BPM.04/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN14-AR/DG-EPOS/BPM.05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN14-AR/DG-EPOS/BPM.05/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN14-AR/DG-EPOS/BPM.05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN14-AR/DG-EPOS/BPM.05/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN14-AR/DG-EPOS/BPM.06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN14-AR/DG-EPOS/BPM.06/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN14-AR/DG-EPOS/BPM.06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN14-AR/DG-EPOS/BPM.06/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN14-AR/DG-EPOS/BPM.07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN14-AR/DG-EPOS/BPM.07/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN14-AR/DG-EPOS/BPM.07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN14-AR/DG-EPOS/BPM.07/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN15-SD/DG-EPOS/BPM.01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN15-SD/DG-EPOS/BPM.01/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN15-SD/DG-EPOS/BPM.01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN15-SD/DG-EPOS/BPM.01/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN15-SD/DG-EPOS/BPM.02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN15-SD/DG-EPOS/BPM.02/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN15-SD/DG-EPOS/BPM.02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN15-SD/DG-EPOS/BPM.02/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN15-AR/DG-EPOS/BPM.03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN15-AR/DG-EPOS/BPM.03/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN15-AR/DG-EPOS/BPM.03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN15-AR/DG-EPOS/BPM.03/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN15-AR/DG-EPOS/BPM.04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN15-AR/DG-EPOS/BPM.04/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN15-AR/DG-EPOS/BPM.04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN15-AR/DG-EPOS/BPM.04/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN15-AR/DG-EPOS/BPM.05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN15-AR/DG-EPOS/BPM.05/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN15-AR/DG-EPOS/BPM.05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN15-AR/DG-EPOS/BPM.05/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN15-AR/DG-EPOS/BPM.06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN15-AR/DG-EPOS/BPM.06/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN15-AR/DG-EPOS/BPM.06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN15-AR/DG-EPOS/BPM.06/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN15-AR/DG-EPOS/BPM.07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN15-AR/DG-EPOS/BPM.07/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN15-AR/DG-EPOS/BPM.07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN15-AR/DG-EPOS/BPM.07/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN15-AR/DG-EPOS/BPM.08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN15-AR/DG-EPOS/BPM.08/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN15-AR/DG-EPOS/BPM.08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN15-AR/DG-EPOS/BPM.08/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN15-AR/DG-EPOS/BPM.09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN15-AR/DG-EPOS/BPM.09/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN15-AR/DG-EPOS/BPM.09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN15-AR/DG-EPOS/BPM.09/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN15-AR/DG-EPOS/BPM.10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN15-AR/DG-EPOS/BPM.10/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN15-AR/DG-EPOS/BPM.10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN15-AR/DG-EPOS/BPM.10/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN16-SD/DG-EPOS/BPM.01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN16-SD/DG-EPOS/BPM.01/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN16-SD/DG-EPOS/BPM.01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN16-SD/DG-EPOS/BPM.01/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN16-SD/DG-EPOS/BPM.02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN16-SD/DG-EPOS/BPM.02/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN16-SD/DG-EPOS/BPM.02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN16-SD/DG-EPOS/BPM.02/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN16-SD/DG-EPOS/BPM.03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN16-SD/DG-EPOS/BPM.03/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN16-SD/DG-EPOS/BPM.03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN16-SD/DG-EPOS/BPM.03/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN16-SD/DG-EPOS/BPM.04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN16-SD/DG-EPOS/BPM.04/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN16-SD/DG-EPOS/BPM.04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN16-SD/DG-EPOS/BPM.04/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN16-AR/DG-EPOS/BPM.05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN16-AR/DG-EPOS/BPM.05/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN16-AR/DG-EPOS/BPM.05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN16-AR/DG-EPOS/BPM.05/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN16-AR/DG-EPOS/BPM.06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN16-AR/DG-EPOS/BPM.06/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN16-AR/DG-EPOS/BPM.06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN16-AR/DG-EPOS/BPM.06/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN16-AR/DG-EPOS/BPM.07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN16-AR/DG-EPOS/BPM.07/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN16-AR/DG-EPOS/BPM.07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN16-AR/DG-EPOS/BPM.07/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN16-AR/DG-EPOS/BPM.08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN16-AR/DG-EPOS/BPM.08/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN16-AR/DG-EPOS/BPM.08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN16-AR/DG-EPOS/BPM.08/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN16-AR/DG-EPOS/BPM.09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN16-AR/DG-EPOS/BPM.09/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN16-AR/DG-EPOS/BPM.09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN16-AR/DG-EPOS/BPM.09/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN16-AR/DG-EPOS/BPM.10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN16-AR/DG-EPOS/BPM.10/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN16-AR/DG-EPOS/BPM.10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN16-AR/DG-EPOS/BPM.10/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN16-AR/DG-EPOS/BPM.11/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN16-AR/DG-EPOS/BPM.11/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN16-AR/DG-EPOS/BPM.11/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN16-AR/DG-EPOS/BPM.11/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN16-AR/DG-EPOS/BPM.12/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN16-AR/DG-EPOS/BPM.12/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN16-AR/DG-EPOS/BPM.12/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN16-AR/DG-EPOS/BPM.12/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN17-SD/DG-EPOS/BPM.01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN17-SD/DG-EPOS/BPM.01/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN17-SD/DG-EPOS/BPM.01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN17-SD/DG-EPOS/BPM.01/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN17-SD/DG-EPOS/BPM.02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN17-SD/DG-EPOS/BPM.02/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN17-SD/DG-EPOS/BPM.02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN17-SD/DG-EPOS/BPM.02/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN17-AR/DG-EPOS/BPM.03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN17-AR/DG-EPOS/BPM.03/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN17-AR/DG-EPOS/BPM.03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN17-AR/DG-EPOS/BPM.03/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN17-AR/DG-EPOS/BPM.04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN17-AR/DG-EPOS/BPM.04/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN17-AR/DG-EPOS/BPM.04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN17-AR/DG-EPOS/BPM.04/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN17-AR/DG-EPOS/BPM.05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN17-AR/DG-EPOS/BPM.05/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN17-AR/DG-EPOS/BPM.05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN17-AR/DG-EPOS/BPM.05/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN17-AR/DG-EPOS/BPM.06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN17-AR/DG-EPOS/BPM.06/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN17-AR/DG-EPOS/BPM.06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN17-AR/DG-EPOS/BPM.06/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN17-AR/DG-EPOS/BPM.07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN17-AR/DG-EPOS/BPM.07/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN17-AR/DG-EPOS/BPM.07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN17-AR/DG-EPOS/BPM.07/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN18-SD/DG-EPOS/BPM.01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN18-SD/DG-EPOS/BPM.01/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN18-SD/DG-EPOS/BPM.01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN18-SD/DG-EPOS/BPM.01/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN18-SD/DG-EPOS/BPM.02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN18-SD/DG-EPOS/BPM.02/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN18-SD/DG-EPOS/BPM.02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN18-SD/DG-EPOS/BPM.02/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN18-AR/DG-EPOS/BPM.03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN18-AR/DG-EPOS/BPM.03/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN18-AR/DG-EPOS/BPM.03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN18-AR/DG-EPOS/BPM.03/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN18-AR/DG-EPOS/BPM.04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN18-AR/DG-EPOS/BPM.04/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN18-AR/DG-EPOS/BPM.04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN18-AR/DG-EPOS/BPM.04/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN18-AR/DG-EPOS/BPM.05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN18-AR/DG-EPOS/BPM.05/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN18-AR/DG-EPOS/BPM.05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN18-AR/DG-EPOS/BPM.05/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN18-AR/DG-EPOS/BPM.06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN18-AR/DG-EPOS/BPM.06/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN18-AR/DG-EPOS/BPM.06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN18-AR/DG-EPOS/BPM.06/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN18-AR/DG-EPOS/BPM.07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN18-AR/DG-EPOS/BPM.07/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN18-AR/DG-EPOS/BPM.07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN18-AR/DG-EPOS/BPM.07/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN18-AR/DG-EPOS/BPM.08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN18-AR/DG-EPOS/BPM.08/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN18-AR/DG-EPOS/BPM.08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN18-AR/DG-EPOS/BPM.08/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN18-AR/DG-EPOS/BPM.09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN18-AR/DG-EPOS/BPM.09/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN18-AR/DG-EPOS/BPM.09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN18-AR/DG-EPOS/BPM.09/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN18-AR/DG-EPOS/BPM.10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN18-AR/DG-EPOS/BPM.10/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN18-AR/DG-EPOS/BPM.10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN18-AR/DG-EPOS/BPM.10/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN19-SD/DG-EPOS/BPM.01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN19-SD/DG-EPOS/BPM.01/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN19-SD/DG-EPOS/BPM.01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN19-SD/DG-EPOS/BPM.01/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN19-SD/DG-EPOS/BPM.02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN19-SD/DG-EPOS/BPM.02/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN19-SD/DG-EPOS/BPM.02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN19-SD/DG-EPOS/BPM.02/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN19-AR/DG-EPOS/BPM.03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN19-AR/DG-EPOS/BPM.03/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN19-AR/DG-EPOS/BPM.03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN19-AR/DG-EPOS/BPM.03/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN19-AR/DG-EPOS/BPM.04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN19-AR/DG-EPOS/BPM.04/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN19-AR/DG-EPOS/BPM.04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN19-AR/DG-EPOS/BPM.04/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN19-AR/DG-EPOS/BPM.05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN19-AR/DG-EPOS/BPM.05/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN19-AR/DG-EPOS/BPM.05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN19-AR/DG-EPOS/BPM.05/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN19-AR/DG-EPOS/BPM.06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN19-AR/DG-EPOS/BPM.06/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN19-AR/DG-EPOS/BPM.06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN19-AR/DG-EPOS/BPM.06/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN19-AR/DG-EPOS/BPM.07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN19-AR/DG-EPOS/BPM.07/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN19-AR/DG-EPOS/BPM.07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN19-AR/DG-EPOS/BPM.07/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN20-SD/DG-EPOS/BPM.01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN20-SD/DG-EPOS/BPM.01/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN20-SD/DG-EPOS/BPM.01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN20-SD/DG-EPOS/BPM.01/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN20-SD/DG-EPOS/BPM.02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN20-SD/DG-EPOS/BPM.02/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN20-SD/DG-EPOS/BPM.02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN20-SD/DG-EPOS/BPM.02/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN20-AR/DG-EPOS/BPM.03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN20-AR/DG-EPOS/BPM.03/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN20-AR/DG-EPOS/BPM.03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN20-AR/DG-EPOS/BPM.03/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN20-AR/DG-EPOS/BPM.04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN20-AR/DG-EPOS/BPM.04/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN20-AR/DG-EPOS/BPM.04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN20-AR/DG-EPOS/BPM.04/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN20-AR/DG-EPOS/BPM.05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN20-AR/DG-EPOS/BPM.05/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN20-AR/DG-EPOS/BPM.05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN20-AR/DG-EPOS/BPM.05/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN20-AR/DG-EPOS/BPM.06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN20-AR/DG-EPOS/BPM.06/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN20-AR/DG-EPOS/BPM.06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN20-AR/DG-EPOS/BPM.06/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN20-AR/DG-EPOS/BPM.07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN20-AR/DG-EPOS/BPM.07/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN20-AR/DG-EPOS/BPM.07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN20-AR/DG-EPOS/BPM.07/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN20-AR/DG-EPOS/BPM.08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN20-AR/DG-EPOS/BPM.08/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN20-AR/DG-EPOS/BPM.08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN20-AR/DG-EPOS/BPM.08/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN20-AR/DG-EPOS/BPM.09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN20-AR/DG-EPOS/BPM.09/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN20-AR/DG-EPOS/BPM.09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN20-AR/DG-EPOS/BPM.09/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN20-AR/DG-EPOS/BPM.10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN20-AR/DG-EPOS/BPM.10/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN20-AR/DG-EPOS/BPM.10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN20-AR/DG-EPOS/BPM.10/y_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN01-SD/DG-EPOS/BPM.01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN01-SD/DG-EPOS/BPM.01/x_pos + unit: mm + - type: pyaml.configuration.catalog_entry + reference: AN01-SD/DG-EPOS/BPM.01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: AN01-SD/DG-EPOS/BPM.01/y_pos + unit: mm From 44a7d692883e029add840a1121ee4b09326c4bc7 Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Fri, 20 Feb 2026 18:25:48 +0100 Subject: [PATCH 14/14] Managing the new field "catalog" for control systems. --- examples/SOLEIL_examples/p.yaml | 1 + pyaml/accelerator.py | 11 +++-------- pyaml/control/controlsystem.py | 5 +++++ tests/config/EBSNames.yaml | 1 + tests/config/EBSOrbit.yaml | 1 + tests/config/EBSTune-range.yaml | 1 + tests/config/EBSTune.yaml | 1 + tests/config/EBS_chromaticity.yaml | 1 + tests/config/EBS_rf.yaml | 1 + tests/config/EBS_rf_multi.yaml | 1 + tests/config/EBS_rf_notrans.yaml | 1 + tests/config/bad_conf_duplicate_2.yaml | 1 + tests/config/bad_conf_duplicate_3.yaml | 1 + tests/config/bpms.yaml | 1 + tests/config/sr-ident-cfm.yaml | 1 + tests/config/sr-range-cfm.yaml | 1 + tests/config/sr.yaml | 1 + tests/config/tune_monitor.yaml | 1 + .../dummy_cs/tango-pyaml/tango/pyaml/controlsystem.py | 5 +++++ tests/test_errors.py | 2 +- tests/test_load_quad.py | 3 +++ 21 files changed, 33 insertions(+), 9 deletions(-) diff --git a/examples/SOLEIL_examples/p.yaml b/examples/SOLEIL_examples/p.yaml index 6c36dade..d5ef1dec 100644 --- a/examples/SOLEIL_examples/p.yaml +++ b/examples/SOLEIL_examples/p.yaml @@ -13,6 +13,7 @@ simulators: controls: - type: tango.pyaml.controlsystem name: live + catalog: live_catalog tango_host: localhost:11000 arrays: - type: pyaml.arrays.bpm diff --git a/pyaml/accelerator.py b/pyaml/accelerator.py index f93434be..b19c5f84 100644 --- a/pyaml/accelerator.py +++ b/pyaml/accelerator.py @@ -75,16 +75,11 @@ def __init__(self, cfg: ConfigModel): if cfg.control_system_catalogs is not None: for catalog in cfg.control_system_catalogs: self.__catalogs[catalog.get_name()] = catalog - # TODO Manage mapping between catalogs and control systems - catalog = ( - cfg.control_system_catalogs[0] - if cfg.control_system_catalogs is not None - and len(cfg.control_system_catalogs) > 0 - else None - ) + if cfg.controls is not None: for c in cfg.controls: - c.set_catalog(catalog) + if c.get_catalog_name(): + c.set_catalog(self.__catalogs.get(c.get_catalog_name())) if c.name() == "live": self.__live = c else: diff --git a/pyaml/control/controlsystem.py b/pyaml/control/controlsystem.py index 4781569c..efdfe4ca 100644 --- a/pyaml/control/controlsystem.py +++ b/pyaml/control/controlsystem.py @@ -81,6 +81,11 @@ def vector_aggregator(self) -> str | None: """Returns the module name used for handling aggregator of DeviceVectorAccess""" return None + @abstractmethod + def get_catalog_name(self) -> str | None: + """Returns the name of the catalog dedicated to this control system""" + return None + def attach_indexed(self, dev: DeviceAccess, idx: int | None) -> DeviceAccess: if idx is not None: return self.attach_array([dev])[0] diff --git a/tests/config/EBSNames.yaml b/tests/config/EBSNames.yaml index c359cecb..5b2ab3fa 100644 --- a/tests/config/EBSNames.yaml +++ b/tests/config/EBSNames.yaml @@ -10,6 +10,7 @@ controls: - type: tango.pyaml.controlsystem tango_host: ebs-simu-3:10000 name: live + catalog: live_catalog data_folder: /data/store devices: - type: pyaml.magnet.quadrupole diff --git a/tests/config/EBSOrbit.yaml b/tests/config/EBSOrbit.yaml index b204f161..719b657d 100644 --- a/tests/config/EBSOrbit.yaml +++ b/tests/config/EBSOrbit.yaml @@ -10,6 +10,7 @@ controls: - type: tango.pyaml.controlsystem tango_host: ebs-simu-3:10000 name: live + catalog: live_catalog data_folder: /data/store arrays: - type: pyaml.arrays.magnet diff --git a/tests/config/EBSTune-range.yaml b/tests/config/EBSTune-range.yaml index 3422a53c..ebc9114d 100644 --- a/tests/config/EBSTune-range.yaml +++ b/tests/config/EBSTune-range.yaml @@ -10,6 +10,7 @@ controls: - type: tango.pyaml.controlsystem tango_host: ebs-simu-3:10000 name: live + catalog: live_catalog data_folder: /data/store arrays: - type: pyaml.arrays.magnet diff --git a/tests/config/EBSTune.yaml b/tests/config/EBSTune.yaml index 04f25524..85443983 100644 --- a/tests/config/EBSTune.yaml +++ b/tests/config/EBSTune.yaml @@ -12,6 +12,7 @@ controls: - type: tango.pyaml.controlsystem tango_host: ebs-simu-3:10000 name: live + catalog: live_catalog data_folder: /data/store arrays: - type: pyaml.arrays.magnet diff --git a/tests/config/EBS_chromaticity.yaml b/tests/config/EBS_chromaticity.yaml index 97e71fe8..7fd891e6 100644 --- a/tests/config/EBS_chromaticity.yaml +++ b/tests/config/EBS_chromaticity.yaml @@ -10,6 +10,7 @@ controls: - type: tango.pyaml.controlsystem tango_host: ebs-simu-2:10000 name: live + catalog: live_catalog data_folder: /data/store devices: - type: pyaml.diagnostics.tune_monitor diff --git a/tests/config/EBS_rf.yaml b/tests/config/EBS_rf.yaml index 5094d355..3224c1e5 100644 --- a/tests/config/EBS_rf.yaml +++ b/tests/config/EBS_rf.yaml @@ -10,6 +10,7 @@ controls: - type: tango.pyaml.controlsystem tango_host: ebs-simu-3:10000 name: live + catalog: live_catalog data_folder: /data/store devices: - type: pyaml.rf.rf_plant diff --git a/tests/config/EBS_rf_multi.yaml b/tests/config/EBS_rf_multi.yaml index 1d6d4299..cc3c323b 100644 --- a/tests/config/EBS_rf_multi.yaml +++ b/tests/config/EBS_rf_multi.yaml @@ -10,6 +10,7 @@ controls: - type: tango.pyaml.controlsystem tango_host: ebs-simu-3:10000 name: live + catalog: live_catalog data_folder: /data/store devices: - type: pyaml.rf.rf_plant diff --git a/tests/config/EBS_rf_notrans.yaml b/tests/config/EBS_rf_notrans.yaml index d6cb3ee6..2e99d38e 100644 --- a/tests/config/EBS_rf_notrans.yaml +++ b/tests/config/EBS_rf_notrans.yaml @@ -10,6 +10,7 @@ controls: - type: tango.pyaml.controlsystem tango_host: ebs-simu-3:10000 name: live + catalog: live_catalog data_folder: /data/store devices: - type: pyaml.rf.rf_plant diff --git a/tests/config/bad_conf_duplicate_2.yaml b/tests/config/bad_conf_duplicate_2.yaml index bc3d0966..15e3a36e 100644 --- a/tests/config/bad_conf_duplicate_2.yaml +++ b/tests/config/bad_conf_duplicate_2.yaml @@ -10,6 +10,7 @@ controls: - type: tango.pyaml.controlsystem tango_host: ebs-simu-3:10000 name: live + catalog: live_catalog data_folder: /data/store arrays: - type: pyaml.arrays.bpm diff --git a/tests/config/bad_conf_duplicate_3.yaml b/tests/config/bad_conf_duplicate_3.yaml index 9985f41b..2d7f86b5 100644 --- a/tests/config/bad_conf_duplicate_3.yaml +++ b/tests/config/bad_conf_duplicate_3.yaml @@ -10,6 +10,7 @@ controls: - type: tango.pyaml.controlsystem tango_host: ebs-simu-3:10000 name: live + catalog: live_catalog data_folder: /data/store arrays: - type: pyaml.arrays.bpm diff --git a/tests/config/bpms.yaml b/tests/config/bpms.yaml index 3af67cbf..e673ed51 100644 --- a/tests/config/bpms.yaml +++ b/tests/config/bpms.yaml @@ -10,6 +10,7 @@ controls: - type: tango.pyaml.controlsystem tango_host: ebs-simu-3:10000 name: live + catalog: live_catalog data_folder: /data/store devices: - type: pyaml.bpm.bpm diff --git a/tests/config/sr-ident-cfm.yaml b/tests/config/sr-ident-cfm.yaml index 0608ca5d..59438335 100644 --- a/tests/config/sr-ident-cfm.yaml +++ b/tests/config/sr-ident-cfm.yaml @@ -10,6 +10,7 @@ controls: - type: tango.pyaml.controlsystem tango_host: ebs-simu-3:10000 name: live + catalog: live_catalog data_folder: /data/store arrays: - type: pyaml.arrays.magnet diff --git a/tests/config/sr-range-cfm.yaml b/tests/config/sr-range-cfm.yaml index ae4fd7f4..ffeedc60 100644 --- a/tests/config/sr-range-cfm.yaml +++ b/tests/config/sr-range-cfm.yaml @@ -10,6 +10,7 @@ controls: - type: tango.pyaml.controlsystem tango_host: ebs-simu-3:10000 name: live + catalog: live_catalog data_folder: /data/store arrays: - type: pyaml.arrays.magnet diff --git a/tests/config/sr.yaml b/tests/config/sr.yaml index 9cea0269..c75807e6 100644 --- a/tests/config/sr.yaml +++ b/tests/config/sr.yaml @@ -10,6 +10,7 @@ controls: - type: tango.pyaml.controlsystem tango_host: ebs-simu-3:10000 name: live + catalog: live_catalog data_folder: /data/store arrays: - type: pyaml.arrays.magnet diff --git a/tests/config/tune_monitor.yaml b/tests/config/tune_monitor.yaml index 645efc61..5e00358a 100644 --- a/tests/config/tune_monitor.yaml +++ b/tests/config/tune_monitor.yaml @@ -10,6 +10,7 @@ controls: - type: tango.pyaml.controlsystem tango_host: ebs-simu-3:10000 name: live + catalog: live_catalog data_folder: /data/store devices: - type: pyaml.diagnostics.tune_monitor diff --git a/tests/dummy_cs/tango-pyaml/tango/pyaml/controlsystem.py b/tests/dummy_cs/tango-pyaml/tango/pyaml/controlsystem.py index 68fee777..9527e1e5 100644 --- a/tests/dummy_cs/tango-pyaml/tango/pyaml/controlsystem.py +++ b/tests/dummy_cs/tango-pyaml/tango/pyaml/controlsystem.py @@ -13,6 +13,7 @@ class ConfigModel(BaseModel): model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") name: str + catalog: str tango_host: str debug_level: str = None @@ -24,6 +25,10 @@ def __init__(self, cfg: ConfigModel): print(f"Creating dummy TangoControlSystem: {cfg.name}") self.__DEVICES = {} + def get_catalog_name(self) -> str | None: + """Returns the name of the catalog dedicated to this control system""" + return self._cfg.catalog + def attach_array(self, devs: list[DeviceAccess]) -> list[DeviceAccess]: return self._attach(devs, True) diff --git a/tests/test_errors.py b/tests/test_errors.py index 535976f2..177aec98 100644 --- a/tests/test_errors.py +++ b/tests/test_errors.py @@ -22,7 +22,7 @@ def test_tune(install_test_package): with pytest.raises(PyAMLConfigException) as exc: ml: Accelerator = Accelerator.load("tests/config/bad_conf_duplicate_3.yaml") assert "element BPM_C04-06 already defined" in str(exc) - assert "line 40, column 3" in str(exc) + assert "line 41, column 3" in str(exc) sr: Accelerator = Accelerator.load("tests/config/EBSTune.yaml") m1 = sr.live.get_magnet("QF1E-C04") diff --git a/tests/test_load_quad.py b/tests/test_load_quad.py index 22d9f3c1..7920d25d 100644 --- a/tests/test_load_quad.py +++ b/tests/test_load_quad.py @@ -38,6 +38,7 @@ def test_quad_external_model(install_test_package, config_root_dir): { "type": "tango.pyaml.controlsystem", "name": "live", + "catalog": "live_catalog", "tango_host": "ebs-simu-3:10000", } ) @@ -81,6 +82,7 @@ def test_quad_linear(magnet_file, install_test_package, config_root_dir): { "type": "tango.pyaml.controlsystem", "name": "live", + "catalog": "live_catalog", "tango_host": "ebs-simu-3:10000", } ) @@ -129,6 +131,7 @@ def test_combined_function_magnets(magnet_file, config_root_dir): { "type": "tango.pyaml.controlsystem", "name": "live", + "catalog": "live_catalog", "tango_host": "ebs-simu-3:10000", } )