From a1fde8628f65ec3cbdd20d66ef79d55371014b19 Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Mon, 20 Apr 2026 10:49:16 +0200 Subject: [PATCH 01/19] Add catalog-based device resolution --- pull_request_187.md | 327 ++++++++++++++++++ pyaml/accelerator.py | 30 ++ pyaml/bpm/bpm_model.py | 8 +- pyaml/bpm/bpm_simple_model.py | 12 +- pyaml/bpm/bpm_tiltoffset_model.py | 18 +- pyaml/configuration/__init__.py | 2 + pyaml/configuration/catalog.py | 34 ++ pyaml/configuration/factory.py | 47 +-- pyaml/configuration/fileloader.py | 7 + pyaml/configuration/static_catalog.py | 31 ++ pyaml/control/abstract_impl.py | 22 +- pyaml/control/controlsystem.py | 52 ++- pyaml/control/deviceaccess.py | 9 + pyaml/diagnostics/tune_monitor.py | 6 +- pyaml/magnet/identity_cfm_model.py | 17 +- pyaml/magnet/identity_model.py | 16 +- pyaml/magnet/linear_cfm_model.py | 39 +-- pyaml/magnet/linear_model.py | 22 +- pyaml/magnet/linear_serialized_model.py | 28 +- pyaml/magnet/model.py | 12 +- pyaml/magnet/serialized_magnet.py | 9 +- pyaml/magnet/spline_model.py | 17 +- pyaml/rf/rf_plant.py | 6 +- pyaml/rf/rf_transmitter.py | 14 +- tests/config/bad_catalog_duplicate_key.yaml | 18 + tests/config/catalog_dynamic.yaml | 26 ++ tests/config/catalog_named.yaml | 105 ++++++ .../tango/pyaml/attribute_catalog.py | 38 ++ .../tango-pyaml/tango/pyaml/controlsystem.py | 2 + tests/test_catalogs.py | 240 +++++++++++++ 30 files changed, 1024 insertions(+), 190 deletions(-) create mode 100644 pull_request_187.md create mode 100644 pyaml/configuration/catalog.py create mode 100644 pyaml/configuration/static_catalog.py create mode 100644 tests/config/bad_catalog_duplicate_key.yaml create mode 100644 tests/config/catalog_dynamic.yaml create mode 100644 tests/config/catalog_named.yaml create mode 100644 tests/dummy_cs/tango-pyaml/tango/pyaml/attribute_catalog.py create mode 100644 tests/test_catalogs.py diff --git a/pull_request_187.md b/pull_request_187.md new file mode 100644 index 00000000..8ba09d81 --- /dev/null +++ b/pull_request_187.md @@ -0,0 +1,327 @@ +## Description + +Add named `Catalog` objects to the PyAML configuration so device references can be resolved by key at control-system attachment time. + +This is a major cross-cutting change. It must stay conceptually minimal, but it affects the full PyAML object model because any object configuration that currently carries `DeviceAccess` instances may now carry catalog keys instead. + +A catalog is only responsible for resolving a string key into a `DeviceAccess`. PyAML must provide a built-in catalog manager based on an explicit `key -> DeviceAccess` mapping. Catalogs may therefore be static or dynamic: + +- the built-in static catalog manager stores explicit `key -> DeviceAccess` entries; +- a dynamic catalog can reconstruct the `DeviceAccess` from the key alone, possibly by querying an external system. + +When a catalog is attached to a control system, the control system must notify the catalog of that attachment. This lifecycle notification is especially important for dynamic catalogs, which may need the control-system context to resolve keys correctly. + +Example: a project such as `tango-pyaml`, which already provides the Tango control-system integration, may expose a dedicated dynamic catalog implementation that queries the Tango database and builds the proper `DeviceAccess` from the requested key. + +Control systems must be able to use: + +- a single named catalog declared at accelerator level; +- or a single inline catalog declared directly inside the control-system configuration for convenience. + +The same catalog object may be referenced and shared by several control systems. + +This document is intentionally written so it can be used as an implementation prompt. The implementation must follow the scope and non-goals below. + +## Related Issue + +This project only accepts pull requests related to open issues. If suggesting a new feature or change, please discuss it in an issue first. + +- Fixes #187 + +Features/issues described there are: +- [ ] new feature: introduce top-level named catalogs in `pyaml.accelerator.ConfigModel`, because device resolution must be configurable independently from the element models. +- [ ] new feature: define a minimal catalog abstraction whose only required responsibility is `resolve(key) -> DeviceAccess`, because dynamic catalogs must not be forced to enumerate all valid keys. +- [ ] new feature: provide a built-in PyAML catalog manager backed by an explicit `key -> DeviceAccess` mapping, because a standard static implementation must exist without requiring an external plugin. +- [ ] new feature: allow a `ControlSystem` to declare `catalog: str | Catalog | None`, because each control system must use exactly one catalog, either by named reference or inline declaration. +- [ ] new feature: define a catalog attachment notification from `ControlSystem` to `Catalog`, because dynamic catalogs may require control-system-specific context before resolving keys. +- [ ] new feature: allow configuration fields across PyAML that currently store `DeviceAccess` objects to also accept string keys, because the actual device may now come from a catalog. +- [ ] new feature: support external catalog implementations loaded through the existing factory mechanism, because dynamic catalogs may require specialized logic such as reconstructing Tango `DeviceAccess` objects from an attribute key. + +## Scope and Non-Goals + +The implementation must stay within the following scope: + +- [ ] catalogs only resolve keys to `DeviceAccess`; +- [ ] catalog resolution happens lazily, when a `ControlSystem` is about to call `attach()` or `attach_array()`; +- [ ] existing configurations that provide direct `DeviceAccess` objects must keep working unchanged; +- [ ] the implementation must be applied consistently across PyAML objects, not only BPM-related classes. + +The following ideas are explicitly out of scope and must not be introduced: + +- [ ] no `CatalogView`; +- [ ] no `DeviceAccessProxy`; +- [ ] no sub-catalog or filtered catalog API; +- [ ] no `keys()` requirement on catalogs; +- [ ] no runtime propagation of catalog updates into already attached objects; +- [ ] no BPM-specific redesign just to support catalogs; +- [ ] no assumption that every catalog can enumerate or validate all possible keys ahead of time. + +## Expected Design + +Use the existing code structure and keep the change localized. + +- [ ] add a minimal catalog interface or base class under `pyaml.configuration` with an API centered on `resolve(key: str) -> DeviceAccess`; +- [ ] provide a built-in PyAML catalog manager for explicit config-defined `key -> DeviceAccess` entries; +- [ ] make `Catalog.name` part of the catalog object itself, so top-level catalogs are referenced by their own declared name; +- [ ] add a catalog lifecycle hook so a catalog can be notified when it is attached to a `ControlSystem`; +- [ ] extend `Accelerator.ConfigModel` with `catalogs: list[Catalog] | None`; +- [ ] keep a registry of named catalogs in `Accelerator`, with a small public accessor such as `get_catalog(name: str)`; +- [ ] extend control-system configuration so a control system can declare `catalog: str | Catalog | None`; +- [ ] resolve those catalog references during accelerator initialization, before `fill_device()` is called; +- [ ] inject the resolved catalog object into each control system; +- [ ] notify the catalog from the control system once the catalog is attached to it; +- [ ] add a small utility in `ControlSystem` to convert `DeviceAccess | str | None` into `DeviceAccess | None`; +- [ ] use that utility immediately before each `attach()` and `attach_array()` call instead of changing the attachment model itself. + +## Changes to existing functionality + +Describe the changes that had to be made to an existing functionality (if they were made) + +- [ ] `Accelerator` must now build and store named catalogs before attaching devices to control systems, because control systems may resolve string keys through one configured catalog, either by name or inline object. +- [ ] `ControlSystem` must notify its attached catalog of the attachment event, because dynamic catalogs may require the control-system context before `resolve()` is used. +- [ ] `ControlSystem.fill_device()` and related aggregation paths must resolve string keys into `DeviceAccess` objects before calling `attach()` / `attach_array()`, because models may now carry either an actual device or a catalog key. +- [ ] configuration models across PyAML that currently type device fields as `DeviceAccess` must be updated to accept `DeviceAccess | str`, while preserving their existing APIs as much as possible. +- [ ] direct `DeviceAccess` configuration remains supported and must not require a catalog. +- [ ] the built-in PyAML catalog manager becomes the default static catalog implementation used for named and inline mapping-based catalogs. +- [ ] error handling must stay explicit: unknown named catalog, missing resolver on a control system, or unresolved key must raise clear `PyAMLException` / `PyAMLConfigException` messages. + +## Implementation Notes + +Use these constraints when implementing: + +- [ ] prefer minimal API additions over broad refactors; +- [ ] keep the notion of catalog attached to the control-system side, not to BPM-specific runtime helpers; +- [ ] do not add any API that implies catalogs are enumerable; +- [ ] a control system stores at most one resolved catalog reference; +- [ ] if no catalog resolves a key, raise a clear error mentioning the key and the control-system name when available; +- [ ] if a control system references a named catalog, resolve it once during accelerator initialization and reuse that same catalog object; +- [ ] it must be possible for several control systems to reference the same catalog object; +- [ ] if the same catalog object is shared by several control systems, the catalog attachment notification API must support that lifecycle cleanly; +- [ ] if duplicate catalog names are declared at accelerator level, fail fast during accelerator construction; +- [ ] if a static catalog contains duplicate explicit keys, fail fast during its validation; +- [ ] the built-in catalog manager should remain simple: explicit mapping storage plus `resolve(key)`, without any catalog-view or synchronization behavior; +- [ ] keep external dynamic catalogs pluggable through `type`-based factory loading; +- [ ] document and preserve the extension path for external providers such as `tango-pyaml`, which may use their own control-system metadata source to reconstruct `DeviceAccess` objects dynamically; +- [ ] treat this as a project-wide typing and attachment change, and review all PyAML object families for `DeviceAccess`-typed config fields and attachment flows. + +Recommended areas to update: + +- [ ] `pyaml/accelerator.py` +- [ ] `pyaml/control/controlsystem.py` +- [ ] new catalog modules under `pyaml/configuration/` +- [ ] all config models and attachment paths that currently accept or manipulate `DeviceAccess`, including BPMs, magnets, serialized magnets, RF, tune monitors, arrays, tools, and any external object integrated through the standard PyAML construction flow + +## Impacted PyAML Objects + +The implementation must be reviewed against the following PyAML object families. + +Directly impacted objects and models: + +- [ ] `Accelerator` +- [ ] `ControlSystem` +- [ ] `BPMModel` +- [ ] `BPMSimpleModel` +- [ ] `BPMTiltOffsetModel` +- [ ] `BetatronTuneMonitor` +- [ ] `MagnetModel` +- [ ] `IdentityMagnetModel` +- [ ] `IdentityCFMagnetModel` +- [ ] `LinearMagnetModel` +- [ ] `LinearCFMagnetModel` +- [ ] `LinearSerializedMagnetModel` +- [ ] `SplineMagnetModel` +- [ ] `RFPlant` +- [ ] `RFTransmitter` + +Indirectly impacted runtime objects and attachment paths: + +- [ ] `BPM` +- [ ] `Magnet` +- [ ] `CombinedFunctionMagnet` +- [ ] `SerializedMagnets` +- [ ] control-system magnet aggregators +- [ ] control-system BPM aggregators +- [ ] control-system RF attachment flow +- [ ] control-system tune-monitor attachment flow +- [ ] any external object built through the standard PyAML factory flow whose config contains `DeviceAccess` fields + +Objects not expected to require direct catalog-aware config changes, but that must still be checked for regressions: + +- [ ] `Simulator` +- [ ] arrays built on top of already attached objects +- [ ] `TuningTool` +- [ ] `MeasurementTool` +- [ ] `YellowPages` + +## Configuration Examples + +The examples below illustrate the intended configuration style. + +Top-level static catalogs provided by base PyAML: + +```yaml +type: pyaml.accelerator +facility: SOLEIL +machine: StorageRing +energy: 2.75e9 +data_folder: . + +catalogs: + - type: pyaml.configuration.static_catalog + name: bpm-common + refs: + BPM_C01-01/x: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-01/XPosSA + unit: mm + BPM_C01-01/y: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-01/YPosSA + unit: mm + BPM_C01-01/tilt: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-01/Tilt + unit: rad +``` + +Control system using a named shared catalog: + +```yaml +controls: + - type: tango.pyaml.controlsystem + name: live + catalog: bpm-common + + - type: tango.pyaml.controlsystem + name: ops + catalog: bpm-common +``` + +Objects using catalog keys instead of direct `DeviceAccess` declarations: + +```yaml +devices: + - type: pyaml.bpm.bpm + name: BPM_C01-01 + model: + type: pyaml.bpm.bpm_tiltoffset_model + x_pos: BPM_C01-01/x + y_pos: BPM_C01-01/y + tilt: BPM_C01-01/tilt + + - type: pyaml.diagnostics.tune_monitor + name: tune + tune_h: tune/h + tune_v: tune/v +``` + +Combined-function magnet example using catalog keys for power converters: + +```yaml +devices: + - type: pyaml.magnet.cfm_magnet + name: SH1A-C01 + mapping: + - [B0, SH1A-C01-H] + - [A0, SH1A-C01-V] + - [A1, SH1A-C01-SQ] + model: + type: pyaml.magnet.linear_cfm_model + multipoles: [B0, A0, A1] + units: [rad, rad, m-1] + pseudo_factors: [1.0, -1.0, -1.0] + curves: + - type: pyaml.configuration.csvcurve + file: sr/magnet_models/SH1_SH3_h_strength.csv + - type: pyaml.configuration.csvcurve + file: sr/magnet_models/SH1_SH3_v_strength.csv + - type: pyaml.configuration.csvcurve + file: sr/magnet_models/SH1_SH3_sq_strength.csv + matrix: + type: pyaml.configuration.csvmatrix + file: sr/magnet_models/SH_matrix.csv + powerconverters: + - SH1A-C01/ps1 + - SH1A-C01/ps2 + - SH1A-C01/ps3 +``` + +With matching static catalog entries: + +```yaml +catalogs: + - type: pyaml.configuration.static_catalog + name: correctors + refs: + SH1A-C01/ps1: + type: tango.pyaml.attribute + attribute: srmag/ps-corr-sh1/c01-a-ch1/current + unit: A + SH1A-C01/ps2: + type: tango.pyaml.attribute + attribute: srmag/ps-corr-sh1/c01-a-ch2/current + unit: A + SH1A-C01/ps3: + type: tango.pyaml.attribute + attribute: srmag/ps-corr-sh1/c01-a-ch3/current + unit: A +``` + +Dynamic external catalog example with `tango-pyaml`: + +```yaml +catalogs: + - type: tango.pyaml.attribute_catalog + name: tango-db + domain: SR + family: BPM +``` + +In this case, the catalog does not need to declare all keys explicitly. It may reconstruct the proper `DeviceAccess` on demand by querying the Tango database from the requested key. + +Control system using an inline catalog: + +```yaml +controls: + - type: tango.pyaml.controlsystem + name: live + catalog: + type: pyaml.configuration.static_catalog + name: live-local + refs: + tune/h: + type: tango.pyaml.attribute_read_only + attribute: srdiag/tune/X + unit: "" + tune/v: + type: tango.pyaml.attribute_read_only + attribute: srdiag/tune/Z + unit: "" +``` + +Control system using a dynamic external catalog: + +```yaml +controls: + - type: tango.pyaml.controlsystem + name: live + catalog: tango-db +``` + +## Testing + The following tests (compatible with pytest) should be added: + - [ ] load an accelerator with top-level named catalogs and resolve a device key from a control system + - [ ] share one named catalog between several control systems and verify they reference the same catalog object + - [ ] load a control system with an inline catalog and resolve a device key + - [ ] keep existing behavior when a config provides direct `DeviceAccess` objects instead of keys + - [ ] fail clearly on unknown catalog name referenced by a control system + - [ ] fail clearly on unresolved key + - [ ] fail clearly on duplicate top-level catalog names + - [ ] fail clearly on duplicate keys inside a static catalog + - [ ] validate at least one dynamic catalog fixture that reconstructs a `DeviceAccess` from a key without a predeclared entry list + +## Verify that your checklist complies with the project +- [ ] New and existing unit tests pass locally +- [ ] Tests were added to prove that all features/changes are effective +- [ ] The code is commented where appropriate +- [ ] Any existing features are not broken (unless there is an explicit change to an existing functionality) diff --git a/pyaml/accelerator.py b/pyaml/accelerator.py index e282d9e2..1f0e5941 100644 --- a/pyaml/accelerator.py +++ b/pyaml/accelerator.py @@ -10,6 +10,7 @@ from .common.element import Element from .common.element_holder import ElementHolder 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 @@ -60,6 +61,7 @@ class ConfigModel(BaseModel): alphac: float | None = None harmonic_number: int | None = None controls: list[ControlSystem] = None + catalogs: list[Catalog] = None simulators: list[Simulator] = None data_folder: str description: str | None = None @@ -76,6 +78,14 @@ def __init__(self, cfg: ConfigModel): __live = None self._controls: dict[str, ElementHolder] = {} self._simulators: dict[str, ElementHolder] = {} + self._catalogs: dict[str, Catalog] = {} + + if cfg.catalogs is not None: + for catalog in cfg.catalogs: + name = catalog.get_name() + if name in self._catalogs: + raise PyAMLConfigException(f"catalog {name} already defined") + self._catalogs[name] = catalog if cfg.controls is not None: for c in cfg.controls: @@ -84,6 +94,7 @@ def __init__(self, cfg: ConfigModel): else: # Add as dynamic attribute setattr(self, c.name(), c) + c.set_catalog(self._resolve_control_system_catalog(c)) c.fill_device(cfg.devices) self._controls[c.name()] = c @@ -223,6 +234,14 @@ def modes(self) -> dict[str, "ElementHolder"]: modes.update(self._controls) return modes + def get_catalog(self, name: str) -> Catalog: + if name not in self._catalogs: + raise PyAMLConfigException(f"catalog {name} not defined") + return self._catalogs[name] + + def catalogs(self) -> dict[str, Catalog]: + return self._catalogs + def __repr__(self): return repr(self._cfg).replace("ConfigModel", self.__class__.__name__) @@ -244,6 +263,7 @@ def from_dict(config_dict: dict, ignore_external=False) -> "Accelerator": if ignore_external: # control systems are external, so remove controls field config_dict.pop("controls", None) + config_dict.pop("catalogs", None) # Ensure factory is clean before building a new accelerator Factory.clear() return Factory.depth_first_build(config_dict, ignore_external) @@ -275,3 +295,13 @@ def load(filename: str, use_fast_loader: bool = False, ignore_external=False) -> set_root_folder(rootfolder) config_dict = load(os.path.basename(filename), None, use_fast_loader) return Accelerator.from_dict(config_dict, ignore_external=ignore_external) + + def _resolve_control_system_catalog(self, control_system: ControlSystem) -> Catalog | None: + catalog = control_system.get_catalog_config() + if catalog is None: + return None + if isinstance(catalog, str): + return self.get_catalog(catalog) + if isinstance(catalog, Catalog): + return catalog + raise PyAMLConfigException(f"Invalid catalog configuration for control system {control_system.name()}") diff --git a/pyaml/bpm/bpm_model.py b/pyaml/bpm/bpm_model.py index e00c2aa3..d2edccf6 100644 --- a/pyaml/bpm/bpm_model.py +++ b/pyaml/bpm/bpm_model.py @@ -3,7 +3,7 @@ import numpy as np from numpy.typing import NDArray -from ..control.deviceaccess import DeviceAccess +from ..control.deviceaccess import DeviceAccessRef class BPMModel(metaclass=ABCMeta): @@ -13,7 +13,7 @@ class BPMModel(metaclass=ABCMeta): """ @abstractmethod - def get_pos_devices(self) -> list[DeviceAccess | None]: + def get_pos_devices(self) -> list[DeviceAccessRef | None]: """ Get device handles used for position reading @@ -25,7 +25,7 @@ def get_pos_devices(self) -> list[DeviceAccess | None]: pass @abstractmethod - def get_tilt_device(self) -> DeviceAccess | None: + def get_tilt_device(self) -> DeviceAccessRef | None: """ Get device handle used for tilt access @@ -37,7 +37,7 @@ def get_tilt_device(self) -> DeviceAccess | None: pass @abstractmethod - def get_offset_devices(self) -> list[DeviceAccess | None]: + def get_offset_devices(self) -> list[DeviceAccessRef | 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..938f1864 100644 --- a/pyaml/bpm/bpm_simple_model.py +++ b/pyaml/bpm/bpm_simple_model.py @@ -5,7 +5,7 @@ from pyaml.bpm.bpm_model import BPMModel from ..common.element import __pyaml_repr__ -from ..control.deviceaccess import DeviceAccess +from ..control.deviceaccess import DeviceAccessRef # Define the main class name for this module PYAMLCLASS = "BPMSimpleModel" @@ -31,8 +31,8 @@ class ConfigModel(BaseModel): model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") - x_pos: DeviceAccess | None - y_pos: DeviceAccess | None + x_pos: DeviceAccessRef | None + y_pos: DeviceAccessRef | None x_pos_index: int | None = None y_pos_index: int | None = None @@ -48,7 +48,7 @@ def __init__(self, cfg: ConfigModel): 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) -> list[DeviceAccessRef | None]: """ Get device handles used for position reading @@ -59,7 +59,7 @@ def get_pos_devices(self) -> list[DeviceAccess | None]: """ return [self.__x_pos, self.__y_pos] - def get_tilt_device(self) -> DeviceAccess | None: + def get_tilt_device(self) -> DeviceAccessRef | None: """ Get device handle used for tilt access @@ -70,7 +70,7 @@ def get_tilt_device(self) -> DeviceAccess | None: """ return None - def get_offset_devices(self) -> list[DeviceAccess | None]: + def get_offset_devices(self) -> list[DeviceAccessRef | None]: """ Get device handles used for offset access diff --git a/pyaml/bpm/bpm_tiltoffset_model.py b/pyaml/bpm/bpm_tiltoffset_model.py index 6bccbd8c..8c7993d4 100644 --- a/pyaml/bpm/bpm_tiltoffset_model.py +++ b/pyaml/bpm/bpm_tiltoffset_model.py @@ -6,7 +6,7 @@ from pyaml.bpm.bpm_simple_model import BPMSimpleModel from ..common.element import __pyaml_repr__ -from ..control.deviceaccess import DeviceAccess +from ..control.deviceaccess import DeviceAccessRef # Define the main class name for this module PYAMLCLASS = "BPMTiltOffsetModel" @@ -34,13 +34,13 @@ class ConfigModel(BaseModel): model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") - x_pos: DeviceAccess | None - y_pos: DeviceAccess | None + x_pos: DeviceAccessRef | None + y_pos: DeviceAccessRef | None x_pos_index: int | None = None y_pos_index: int | None = None - x_offset: DeviceAccess | None - y_offset: DeviceAccess | None - tilt: DeviceAccess | None + x_offset: DeviceAccessRef | None + y_offset: DeviceAccessRef | None + tilt: DeviceAccessRef | None class BPMTiltOffsetModel(BPMSimpleModel): @@ -57,7 +57,7 @@ def __init__(self, cfg: ConfigModel): self.__y_offset = cfg.y_offset self.__tilt = cfg.tilt - def get_pos_devices(self) -> list[DeviceAccess | None]: + def get_pos_devices(self) -> list[DeviceAccessRef | None]: """ Get device handles used for position reading @@ -68,7 +68,7 @@ def get_pos_devices(self) -> list[DeviceAccess | None]: """ return [self.__x_pos, self.__y_pos] - def get_tilt_device(self) -> DeviceAccess | None: + def get_tilt_device(self) -> DeviceAccessRef | None: """ Get device handle used for tilt access @@ -79,7 +79,7 @@ def get_tilt_device(self) -> DeviceAccess | None: """ return self.__tilt - def get_offset_devices(self) -> list[DeviceAccess | None]: + def get_offset_devices(self) -> list[DeviceAccessRef | None]: """ Get device handles used for offset access diff --git a/pyaml/configuration/__init__.py b/pyaml/configuration/__init__.py index 3132ecc6..161aaa67 100644 --- a/pyaml/configuration/__init__.py +++ b/pyaml/configuration/__init__.py @@ -2,5 +2,7 @@ PyAML configuration module """ +from .catalog import Catalog, CatalogConfigModel from .factory import Factory from .fileloader import get_root_folder, set_root_folder +from .static_catalog import StaticCatalog diff --git a/pyaml/configuration/catalog.py b/pyaml/configuration/catalog.py new file mode 100644 index 00000000..98b46cd8 --- /dev/null +++ b/pyaml/configuration/catalog.py @@ -0,0 +1,34 @@ +from abc import ABCMeta, abstractmethod +from typing import TYPE_CHECKING + +from pydantic import BaseModel, ConfigDict + +from pyaml.control.deviceaccess import DeviceAccess + +if TYPE_CHECKING: + from pyaml.control.controlsystem import ControlSystem + + +class CatalogConfigModel(BaseModel): + model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") + + name: str + + +class Catalog(metaclass=ABCMeta): + """Base abstraction for resolving a key into a DeviceAccess.""" + + def __init__(self, cfg: CatalogConfigModel): + self._cfg = cfg + + def get_name(self) -> str: + return self._cfg.name + + def attach_control_system(self, control_system: "ControlSystem"): + """Lifecycle hook called when a control system attaches this catalog.""" + return None + + @abstractmethod + def resolve(self, key: str) -> DeviceAccess: + """Resolve a catalog key into a concrete DeviceAccess.""" + raise NotImplementedError diff --git a/pyaml/configuration/factory.py b/pyaml/configuration/factory.py index cc79b89c..f5aa73a9 100644 --- a/pyaml/configuration/factory.py +++ b/pyaml/configuration/factory.py @@ -45,9 +45,7 @@ def remove_strategy(self, strategy: BuildStrategy): """Register a plugin-based strategy for object creation.""" self._strategies.remove(strategy) - def handle_validation_error( - self, e, type_str: str, location_str: str, field_locations: dict - ): + def handle_validation_error(self, e, type_str: str, location_str: str, field_locations: dict): # Handle pydantic errors globalMessage = "" for err in e.errors(): @@ -66,9 +64,7 @@ def handle_validation_error( globalMessage += message globalMessage += ", " # Discard pydantic stack trace - raise PyAMLConfigException( - f"{globalMessage} for object: '{type_str}' {location_str}" - ) from None + raise PyAMLConfigException(f"{globalMessage} for object: '{type_str}' {location_str}") from None def build_object(self, d: dict, ignore_external: bool = False): """Build an object from the dict""" @@ -82,9 +78,7 @@ def build_object(self, d: dict, ignore_external: bool = False): if not isinstance(d, dict): raise PyAMLConfigException(f"Unexpected object {str(d)} {location_str}") if "type" not in d: - raise PyAMLConfigException( - f"No type specified for {str(type(d))}:{str(d)} {location_str}" - ) + raise PyAMLConfigException(f"No type specified for {str(type(d))}:{str(d)} {location_str}") type_str = d.pop("type") try: @@ -93,8 +87,7 @@ def build_object(self, d: dict, ignore_external: bool = False): if not ignore_external: # Discard module not found stack trace raise PyAMLConfigException( - "Module referenced in type cannot be found:" - + f"'{type_str}' {location_str}" + "Module referenced in type cannot be found:" + f"'{type_str}' {location_str}" ) from None else: return None @@ -107,24 +100,18 @@ def build_object(self, d: dict, ignore_external: bool = False): self.register_element(obj) return obj except Exception as e: - raise PyAMLConfigException( - f"Custom strategy failed {location_str}" - ) from e + raise PyAMLConfigException(f"Custom strategy failed {location_str}") from e # Default loading strategy # Get the config object config_cls = getattr(module, "ConfigModel", None) if config_cls is None: - raise PyAMLConfigException( - f"ConfigModel class '{type_str}.ConfigModel' not found {location_str}" - ) + raise PyAMLConfigException(f"ConfigModel class '{type_str}.ConfigModel' not found {location_str}") # Get the class name cls_name = getattr(module, "PYAMLCLASS", None) if cls_name is None: - raise PyAMLConfigException( - f"PYAMLCLASS definition not found in '{type_str}' {location_str}" - ) + raise PyAMLConfigException(f"PYAMLCLASS definition not found in '{type_str}' {location_str}") try: # Validate the model @@ -141,13 +128,11 @@ def build_object(self, d: dict, ignore_external: bool = False): obj = elem_cls(cfg) self.register_element(obj) except Exception as e: - raise PyAMLConfigException( - f"{str(e)} when creating '{type_str}.{cls_name}' {location_str}" - ) from e + raise PyAMLConfigException(f"{str(e)} when creating '{type_str}.{cls_name}' {location_str}") from e return obj - def depth_first_build(self, d, ignore_external: bool): + def depth_first_build(self, d, ignore_external: bool, _is_root: bool = True): """ Main factory function (Depth-first factory) @@ -162,7 +147,7 @@ def depth_first_build(self, d, ignore_external: bool): l = [] for _index, e in enumerate(d): if isinstance(e, dict) or isinstance(e, list): - obj = self.depth_first_build(e, ignore_external) + obj = self.depth_first_build(e, ignore_external, _is_root=False) l.append(obj) else: l.append(e) @@ -172,16 +157,22 @@ def depth_first_build(self, d, ignore_external: bool): for key, value in d.items(): if not key == "__fieldlocations__": if isinstance(value, dict) or isinstance(value, list): - obj = self.depth_first_build(value, ignore_external) + obj = self.depth_first_build(value, ignore_external, _is_root=False) # Replace the inner dict by the object itself d[key] = obj + if "type" not in d: + if _is_root: + raise PyAMLConfigException(f"No type specified for {str(type(d))}:{str(d)} ") + d.pop("__location__", None) + d.pop("__fieldlocations__", None) + return d + # We are now on leaf (no nested object), we can construct return self.build_object(d, ignore_external) raise PyAMLConfigException( - "Unexpected element found. 'dict' or 'list' expected " - "but got '{d.__class__.__name__}'" + "Unexpected element found. 'dict' or 'list' expected but got '{d.__class__.__name__}'" ) def register_element(self, elt): diff --git a/pyaml/configuration/fileloader.py b/pyaml/configuration/fileloader.py index d4a8e81e..206aadbe 100644 --- a/pyaml/configuration/fileloader.py +++ b/pyaml/configuration/fileloader.py @@ -167,6 +167,13 @@ def construct_mapping(self, node, deep=False): "found unhashable key", key_node.start_mark, ) + if key in mapping: + raise ConstructorError( + "while constructing a mapping", + node.start_mark, + f"found duplicate key ({key})", + key_node.start_mark, + ) value = self.construct_object(value_node, deep=deep) mapping[key] = value field_mapping[key] = ( diff --git a/pyaml/configuration/static_catalog.py b/pyaml/configuration/static_catalog.py new file mode 100644 index 00000000..cb2d6d98 --- /dev/null +++ b/pyaml/configuration/static_catalog.py @@ -0,0 +1,31 @@ +from pydantic import ConfigDict, model_validator + +from pyaml import PyAMLException +from pyaml.configuration.catalog import Catalog, CatalogConfigModel +from pyaml.control.deviceaccess import DeviceAccess + +PYAMLCLASS = "StaticCatalog" + + +class ConfigModel(CatalogConfigModel): + model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") + + refs: dict[str, DeviceAccess] + + @model_validator(mode="after") + def validate_refs(self) -> "ConfigModel": + if len(self.refs) == 0: + raise ValueError("StaticCatalog.refs must contain at least one entry") + return self + + +class StaticCatalog(Catalog): + def __init__(self, cfg: ConfigModel): + super().__init__(cfg) + self._refs = cfg.refs + + def resolve(self, key: str) -> DeviceAccess: + try: + return self._refs[key] + except KeyError as exc: + raise PyAMLException(f"Catalog '{self.get_name()}' cannot resolve key '{key}'") from exc diff --git a/pyaml/control/abstract_impl.py b/pyaml/control/abstract_impl.py index 95a28084..b44fa97c 100644 --- a/pyaml/control/abstract_impl.py +++ b/pyaml/control/abstract_impl.py @@ -343,7 +343,8 @@ def set_and_wait(self, value: double): raise NotImplementedError("Not implemented yet.") def unit(self) -> str: - return self.__model.get_hardware_units()[0] + unit = self.__model.get_hardware_units()[0] + return unit if unit != "" else self.__dev.unit() def set_magnet_rigidity(self, brho: np.double): self.__model.set_magnet_rigidity(brho) @@ -417,7 +418,10 @@ def set_and_wait(self, value: np.array): # Gets the unit of the value def unit(self) -> list[str]: - return self.__model.get_hardware_units() + units = self.__model.get_hardware_units() + return [ + model_unit if model_unit != "" else dev.unit() for model_unit, dev in zip(units, self.__devs, strict=True) + ] # ------------------------------------------------------------------------------ @@ -491,7 +495,7 @@ def get(self) -> np.array: # Gets the unit of the value Assume that x and y, offsets and positions # have the same unit def unit(self) -> str: - return self._model.get_pos_devices()[0].unit() + return self._hDev.unit() # ------------------------------------------------------------------------------ @@ -523,7 +527,7 @@ def set_and_wait(self, value: NDArray[np.float64]): # Gets the unit of the value def unit(self) -> str: - return self._model.get_tilt_device().unit() + return self._dev.unit() # ------------------------------------------------------------------------------ @@ -575,7 +579,7 @@ def set_and_wait(self, value: NDArray[np.float64]): # Gets the unit of the value Assume that x and y, offsets and positions # have the same unit def unit(self) -> str: - return self._model.get_pos_devices()[0].unit() + return self._hDev.unit() # ------------------------------------------------------------------------------ @@ -601,7 +605,7 @@ def set_and_wait(self, value: float): raise NotImplementedError("Not implemented yet.") def unit(self) -> str: - return self.__transmitter._cfg.voltage.unit() + return self.__dev.unit() # ------------------------------------------------------------------------------ @@ -627,7 +631,7 @@ def set_and_wait(self, value: float): raise NotImplementedError("Not implemented yet.") def unit(self) -> str: - return self.__transmitter._cfg.phase.unit() + return self.__dev.unit() # ------------------------------------------------------------------------------ @@ -653,7 +657,7 @@ def set_and_wait(self, value: float): raise NotImplementedError("Not implemented yet.") def unit(self) -> str: - return self.__rf._cfg.masterclock.unit() + return self.__dev.unit() # ------------------------------------------------------------------------------ @@ -678,7 +682,7 @@ def get(self) -> NDArray: ) def unit(self) -> str: - return self.__tune_monitor._cfg.tune_v.unit() + return self.__devs[1].unit() # ------------------------------------------------------------------------------ diff --git a/pyaml/control/controlsystem.py b/pyaml/control/controlsystem.py index d644a9a4..bc6368ef 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, @@ -33,7 +34,7 @@ from ..rf.rf_transmitter import RFTransmitter from ..tuning_tools.measurement_tool import MeasurementTool from ..tuning_tools.tuning_tool import TuningTool -from .deviceaccess import DeviceAccess +from .deviceaccess import DeviceAccess, DeviceAccessRef class ControlSystem(ElementHolder, metaclass=ABCMeta): @@ -43,6 +44,18 @@ class ControlSystem(ElementHolder, metaclass=ABCMeta): def __init__(self): ElementHolder.__init__(self) + self._catalog: Catalog | None = None + + def set_catalog(self, catalog: Catalog | None): + self._catalog = catalog + if catalog is not None: + catalog.attach_control_system(self) + + def get_catalog(self) -> Catalog | None: + return self._catalog + + def get_catalog_config(self) -> Catalog | str | None: + return getattr(self._cfg, "catalog", None) @abstractmethod def attach(self, dev: list[DeviceAccess]) -> list[DeviceAccess]: @@ -71,7 +84,20 @@ def vector_aggregator(self) -> str | None: """Returns the module name used for handling aggregator of DeviceVectorAccess""" return None - def attach_indexed(self, dev: DeviceAccess, idx: int | None) -> DeviceAccess: + def resolve_device(self, dev: DeviceAccessRef | None) -> DeviceAccess | None: + if dev is None or isinstance(dev, DeviceAccess): + return dev + if isinstance(dev, str): + if self._catalog is None: + raise PyAMLException(f"Control system '{self.name()}' has no catalog configured for key '{dev}'") + return self._catalog.resolve(dev) + raise PyAMLException(f"Unsupported device reference type: {type(dev).__name__}") + + def resolve_devices(self, devs: list[DeviceAccessRef | None]) -> list[DeviceAccess | None]: + return [self.resolve_device(dev) for dev in devs] + + def attach_indexed(self, dev: DeviceAccessRef | None, idx: int | None) -> DeviceAccess | None: + dev = self.resolve_device(dev) if idx is not None: return self.attach_array([dev])[0] else: @@ -85,7 +111,7 @@ def create_scalar_aggregator(self) -> ScalarAggregator: def create_magnet_strength_aggregator(self, magnets: list[Magnet]) -> ScalarAggregator: agg = CSStrengthScalarAggregator(self.create_scalar_aggregator()) for m in magnets: - devs = self.attach(m.model.get_devices()) + devs = self.attach(self.resolve_devices(m.model.get_devices())) agg.add_magnet(m, devs) return agg @@ -98,7 +124,7 @@ def create_magnet_hardware_aggregator(self, magnets: list[Magnet]) -> ScalarAggr if not m.model.has_hardware(): return None psIndex = m.hardware.index() if isinstance(m.hardware, RWMapper) else 0 - agg.add_devices(self.attach([m.model.get_devices()[psIndex]])[0]) + agg.add_devices(self.attach([self.resolve_device(m.model.get_devices()[psIndex])])[0]) return agg def create_bpm_aggregators(self, bpms: list[BPM]) -> list[ScalarAggregator]: @@ -110,7 +136,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(self.resolve_devices(b.model.get_pos_devices())) agg.add_devices(devs) aggh.add_devices(devs[0]) aggv.add_devices(devs[1]) @@ -124,7 +150,7 @@ 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()) + devs = self.attach_array(self.resolve_devices(b.model.get_pos_devices())) devH = devs[0] devV = devs[1] if devH not in allH: @@ -175,7 +201,7 @@ def fill_device(self, elements: list[Element]): """ for e in elements: if isinstance(e, Magnet): - dev = self.attach(e.model.get_devices())[0] + dev = self.attach(self.resolve_devices(e.model.get_devices()))[0] current = RWHardwareScalar(e.model, dev) if e.model.has_hardware() else None strength = RWStrengthScalar(e.model, dev) if e.model.has_physics() else None # Create a unique ref for this control system @@ -183,7 +209,7 @@ def fill_device(self, elements: list[Element]): self.add_magnet(m) elif isinstance(e, CombinedFunctionMagnet): - devs = self.attach(e.model.get_devices()) + devs = self.attach(self.resolve_devices(e.model.get_devices())) currents = RWHardwareArray(e.model, devs) strengths = RWStrengthArray(e.model, devs) # Create unique refs the cfm and @@ -194,7 +220,7 @@ def fill_device(self, elements: list[Element]): self.add_magnet(m) elif isinstance(e, SerializedMagnets): - devs = self.attach(e.model.get_devices()) + devs = self.attach(self.resolve_devices(e.model.get_devices())) currents = [] strengths = [] # Create unique refs the series and each of its function for this @@ -230,22 +256,22 @@ def fill_device(self, elements: list[Element]): attachedTrans: list[RFTransmitter] = [] if e._cfg.transmitters: for t in e._cfg.transmitters: - vDev = self.attach([t._cfg.voltage])[0] - pDev = self.attach([t._cfg.phase])[0] + vDev = self.attach([self.resolve_device(t._cfg.voltage)])[0] + pDev = self.attach([self.resolve_device(t._cfg.phase)])[0] voltage = RWRFVoltageScalar(t, vDev) phase = RWRFPhaseScalar(t, pDev) nt = t.attach(self, voltage, phase) self.add_rf_transnmitter(nt) attachedTrans.append(nt) - fDev = self.attach([e._cfg.masterclock])[0] + fDev = self.attach([self.resolve_device(e._cfg.masterclock)])[0] frequency = RWRFFrequencyScalar(e, fDev) voltage = RWTotalVoltage(attachedTrans) if e._cfg.transmitters else None ne = e.attach(self, frequency, voltage) self.add_rf_plant(ne) elif isinstance(e, BetatronTuneMonitor): - tuneDevs = self.attach([e._cfg.tune_h, e._cfg.tune_v]) + tuneDevs = self.attach(self.resolve_devices([e._cfg.tune_h, e._cfg.tune_v])) betatron_tune = RBetatronTuneArray(e, tuneDevs) e = e.attach(self, betatron_tune) self.add_betatron_tune_monitor(e) diff --git a/pyaml/control/deviceaccess.py b/pyaml/control/deviceaccess.py index ec37cd4f..55fb98a1 100644 --- a/pyaml/control/deviceaccess.py +++ b/pyaml/control/deviceaccess.py @@ -1,4 +1,5 @@ from abc import ABCMeta, abstractmethod +from typing import TypeAlias # TODO: correctly type value @@ -66,3 +67,11 @@ def check_device_availability(self) -> bool: True if device is available, False otherwise """ pass + + +DeviceAccessRef: TypeAlias = DeviceAccess | str + + +def device_unit(device: DeviceAccessRef | None) -> str: + """Return the unit for a concrete device, or an empty unit for string refs.""" + return device.unit() if isinstance(device, DeviceAccess) else "" diff --git a/pyaml/diagnostics/tune_monitor.py b/pyaml/diagnostics/tune_monitor.py index 1302ea07..ae2b3fb3 100644 --- a/pyaml/diagnostics/tune_monitor.py +++ b/pyaml/diagnostics/tune_monitor.py @@ -1,6 +1,6 @@ from ..common.abstract import ReadFloatArray from ..common.element import Element, ElementConfigModel -from ..control.deviceaccess import DeviceAccess +from ..control.deviceaccess import DeviceAccessRef from .atune_monitor import ABetatronTuneMonitor try: @@ -27,8 +27,8 @@ class ConfigModel(ElementConfigModel): model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") - tune_h: DeviceAccess | None - tune_v: DeviceAccess | None + tune_h: DeviceAccessRef | None + tune_v: DeviceAccessRef | None rf_plant_name: str | None = None diff --git a/pyaml/magnet/identity_cfm_model.py b/pyaml/magnet/identity_cfm_model.py index 1b4a6bd3..0719bb89 100644 --- a/pyaml/magnet/identity_cfm_model.py +++ b/pyaml/magnet/identity_cfm_model.py @@ -3,7 +3,7 @@ from .. import PyAMLException from ..common.element import __pyaml_repr__ -from ..control.deviceaccess import DeviceAccess +from ..control.deviceaccess import DeviceAccessRef from .model import MagnetModel # Define the main class name for this module @@ -29,8 +29,8 @@ class ConfigModel(BaseModel): model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") multipoles: list[str] - powerconverters: list[DeviceAccess | None] | None = None - physics: list[DeviceAccess | None] | None = None + powerconverters: list[DeviceAccessRef | None] | None = None + physics: list[DeviceAccessRef | None] | None = None units: list[str] @@ -47,13 +47,11 @@ def __init__(self, cfg: ConfigModel): if cfg.physics is None and cfg.powerconverters is None: raise PyAMLException( - "Invalid IdentityCFMagnetModel configuration," - "physics or powerconverters device required" + "Invalid IdentityCFMagnetModel configuration,physics or powerconverters device required" ) if cfg.physics is not None and cfg.powerconverters is not None: raise PyAMLException( - "Invalid IdentityCFMagnetModel configuration," - "physics or powerconverters device required but not both" + "Invalid IdentityCFMagnetModel configuration,physics or powerconverters device required but not both" ) if cfg.physics: self.__devices = cfg.physics @@ -68,8 +66,7 @@ def __check_len(self, obj, name, expected_len): lgth = len(obj) if lgth != expected_len: raise PyAMLException( - f"{name} does not have the expected " - f"number of items ({expected_len} items expected but got {lgth})" + f"{name} does not have the expected number of items ({expected_len} items expected but got {lgth})" ) def compute_hardware_values(self, strengths: np.array) -> np.array: @@ -84,7 +81,7 @@ def get_strength_units(self) -> list[str]: def get_hardware_units(self) -> list[str]: return self._cfg.units - def get_devices(self) -> list[DeviceAccess | None]: + def get_devices(self) -> list[DeviceAccessRef | None]: return self.__devices def set_magnet_rigidity(self, brho: np.double): diff --git a/pyaml/magnet/identity_model.py b/pyaml/magnet/identity_model.py index 132fff1f..d9cf3700 100644 --- a/pyaml/magnet/identity_model.py +++ b/pyaml/magnet/identity_model.py @@ -3,7 +3,7 @@ from .. import PyAMLException from ..common.element import __pyaml_repr__ -from ..control.deviceaccess import DeviceAccess +from ..control.deviceaccess import DeviceAccessRef from .model import MagnetModel # Define the main class name for this module @@ -26,8 +26,8 @@ class ConfigModel(BaseModel): model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") - powerconverter: DeviceAccess | None = None - physics: DeviceAccess | None = None + powerconverter: DeviceAccessRef | None = None + physics: DeviceAccessRef | None = None unit: str @@ -40,14 +40,10 @@ def __init__(self, cfg: ConfigModel): self._cfg = cfg self.__unit = cfg.unit if cfg.physics is None and cfg.powerconverter is None: - raise PyAMLException( - "Invalid IdentityMagnetModel configuration," - "physics or powerconverter device required" - ) + raise PyAMLException("Invalid IdentityMagnetModel configuration,physics or powerconverter device required") if cfg.physics is not None and cfg.powerconverter is not None: raise PyAMLException( - "Invalid IdentityMagnetModel configuration," - "physics or powerconverter device required but not both" + "Invalid IdentityMagnetModel configuration,physics or powerconverter device required but not both" ) if cfg.physics: self.__device = cfg.physics @@ -66,7 +62,7 @@ def get_strength_units(self) -> list[str]: def get_hardware_units(self) -> list[str]: return [self.__unit] - def get_devices(self) -> list[DeviceAccess]: + def get_devices(self) -> list[DeviceAccessRef]: return [self.__device] def set_magnet_rigidity(self, brho: np.double): diff --git a/pyaml/magnet/linear_cfm_model.py b/pyaml/magnet/linear_cfm_model.py index 6ddc5421..9cda4be3 100644 --- a/pyaml/magnet/linear_cfm_model.py +++ b/pyaml/magnet/linear_cfm_model.py @@ -5,7 +5,7 @@ from ..common.exception import PyAMLException from ..configuration.curve import Curve from ..configuration.matrix import Matrix -from ..control.deviceaccess import DeviceAccess +from ..control.deviceaccess import DeviceAccessRef, device_unit from .model import MagnetModel # Define the main class name for this module @@ -52,7 +52,7 @@ class ConfigModel(BaseModel): calibration_offsets: list[float] = None pseudo_factors: list[float] = None pseudo_offsets: list[float] = None - powerconverters: list[DeviceAccess | None] + powerconverters: list[DeviceAccessRef | None] matrix: Matrix = None units: list[str] @@ -92,12 +92,8 @@ def __init__(self, cfg: ConfigModel): else: self.__po = cfg.pseudo_factors - self.__check_len( - self.__calibration_factors, "calibration_factors", self.__nbFunction - ) - self.__check_len( - self.__calibration_offsets, "calibration_offsets", self.__nbFunction - ) + self.__check_len(self.__calibration_factors, "calibration_factors", self.__nbFunction) + self.__check_len(self.__calibration_offsets, "calibration_offsets", self.__nbFunction) self.__check_len(self.__pf, "pseudo_factors", self.__nbFunction) self.__check_len(self.__po, "pseudo_offsets", self.__nbFunction) self.__check_len(cfg.units, "units", self.__nbFunction) @@ -112,8 +108,7 @@ def __init__(self, cfg: ConfigModel): if len(_s) != 2 or _s[0] != self.__nbFunction or _s[1] != self.__nbPS: raise PyAMLException( - "matrix wrong dimension " - f"({self.__nbFunction}x{self.__nbPS} expected but got {_s[0]}x{_s[1]})" + f"matrix wrong dimension ({self.__nbFunction}x{self.__nbPS} expected but got {_s[0]}x{_s[1]})" ) self.__curves = [] @@ -133,18 +128,13 @@ def __check_len(self, obj, name, expected_len): lgth = len(obj) if lgth != expected_len: raise PyAMLException( - f"{name} does not have the expected " - f"number of items ({expected_len} items expected but got {lgth})" + f"{name} does not have the expected number of items ({expected_len} items expected but got {lgth})" ) def compute_hardware_values(self, strengths: np.array) -> np.array: _pI = np.zeros(self.__nbFunction) for idx, c in enumerate(self.__rcurves): - _pI[idx] = ( - self.__pf[idx] - * np.interp(strengths[idx] * self._brho, c[:, 0], c[:, 1]) - + self.__po[idx] - ) + _pI[idx] = self.__pf[idx] * np.interp(strengths[idx] * self._brho, c[:, 0], c[:, 1]) + self.__po[idx] _currents = np.matmul(self.__inv, _pI) return _currents @@ -152,30 +142,23 @@ def compute_strengths(self, currents: np.array) -> np.array: _strength = np.zeros(self.__nbFunction) _pI = np.matmul(self.__matrix, currents) for idx, c in enumerate(self.__curves): - _strength[idx] = ( - np.interp( - (_pI[idx] - self.__po[idx]) / self.__pf[idx], c[:, 0], c[:, 1] - ) - / self._brho - ) + _strength[idx] = np.interp((_pI[idx] - self.__po[idx]) / self.__pf[idx], c[:, 0], c[:, 1]) / self._brho return _strength def get_strength_units(self) -> list[str]: return self._cfg.units def get_hardware_units(self) -> list[str]: - return np.array([p.unit() for p in self._cfg.powerconverters]) + return np.array([device_unit(p) for p in self._cfg.powerconverters]) - def get_devices(self) -> list[DeviceAccess]: + def get_devices(self) -> list[DeviceAccessRef]: return self._cfg.powerconverters def set_magnet_rigidity(self, brho: np.double): self._brho = brho def has_hardware(self) -> bool: - return (self.__nbPS == self.__nbFunction) and np.allclose( - self.__matrix, np.eye(self.__nbFunction) - ) + return (self.__nbPS == self.__nbFunction) and np.allclose(self.__matrix, np.eye(self.__nbFunction)) def __repr__(self): return __pyaml_repr__(self) diff --git a/pyaml/magnet/linear_model.py b/pyaml/magnet/linear_model.py index 44e182bc..b530faa8 100644 --- a/pyaml/magnet/linear_model.py +++ b/pyaml/magnet/linear_model.py @@ -3,7 +3,7 @@ from ..common.element import __pyaml_repr__ from ..configuration.curve import Curve -from ..control.deviceaccess import DeviceAccess +from ..control.deviceaccess import DeviceAccessRef, device_unit from .model import MagnetModel # Define the main class name for this module @@ -35,7 +35,7 @@ class ConfigModel(BaseModel): model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") curve: Curve | None = None - powerconverter: DeviceAccess | None + powerconverter: DeviceAccessRef | None calibration_factor: float = 1.0 calibration_offset: float = 0.0 crosstalk: float = 1.0 @@ -52,10 +52,7 @@ def __init__(self, cfg: ConfigModel): self._cfg = cfg if self._cfg.curve: self.__curve = cfg.curve.get_curve() - self.__curve[:, 1] = ( - self.__curve[:, 1] * cfg.calibration_factor * cfg.crosstalk - + cfg.calibration_offset - ) + self.__curve[:, 1] = self.__curve[:, 1] * cfg.calibration_factor * cfg.crosstalk + cfg.calibration_offset self.__rcurve = Curve.inverse(self.__curve) else: self.__curve = None @@ -63,25 +60,20 @@ def __init__(self, cfg: ConfigModel): self.__g = cfg.calibration_factor * cfg.crosstalk self.__o = cfg.calibration_offset self.__strength_unit = cfg.unit - self.__hardware_unit = cfg.powerconverter.unit() + self.__hardware_unit = device_unit(cfg.powerconverter) self.__brho = np.nan self.__ps = cfg.powerconverter def compute_hardware_values(self, strengths: np.array) -> np.array: if self.__rcurve is not None: - _current = np.interp( - strengths[0] * self.__brho, self.__rcurve[:, 0], self.__rcurve[:, 1] - ) + _current = np.interp(strengths[0] * self.__brho, self.__rcurve[:, 0], self.__rcurve[:, 1]) else: _current = (strengths[0] * self.__brho) / self.__g + self.__o return np.array([_current]) def compute_strengths(self, currents: np.array) -> np.array: if self.__curve is not None: - _strength = ( - np.interp(currents[0], self.__curve[:, 0], self.__curve[:, 1]) - / self.__brho - ) + _strength = np.interp(currents[0], self.__curve[:, 0], self.__curve[:, 1]) / self.__brho else: _strength = ((currents[0] - self.__o) * self.__g) / self.__brho return np.array([_strength]) @@ -92,7 +84,7 @@ def get_strength_units(self) -> list[str]: def get_hardware_units(self) -> list[str]: return [self.__hardware_unit] if self.__hardware_unit is not None else [""] - def get_devices(self) -> list[DeviceAccess]: + def get_devices(self) -> list[DeviceAccessRef]: return [self.__ps] def set_magnet_rigidity(self, brho: np.double): diff --git a/pyaml/magnet/linear_serialized_model.py b/pyaml/magnet/linear_serialized_model.py index cfae4bb3..17245470 100644 --- a/pyaml/magnet/linear_serialized_model.py +++ b/pyaml/magnet/linear_serialized_model.py @@ -7,7 +7,7 @@ from ..configuration.inline_curve import ConfigModel as InlineCurveModel from ..configuration.inline_curve import InlineCurve from ..configuration.matrix import Matrix -from ..control.deviceaccess import DeviceAccess +from ..control.deviceaccess import DeviceAccessRef, device_unit from .linear_model import ConfigModel as LinearConfigModel from .linear_model import LinearMagnetModel from .model import MagnetModel @@ -45,7 +45,7 @@ class ConfigModel(BaseModel): calibration_factors: float | list[float] = None calibration_offsets: float | list[float] = None crosstalk: float | list[float] = 1.0 - powerconverter: DeviceAccess + powerconverter: DeviceAccessRef unit: str @@ -75,8 +75,7 @@ def _check_len(obj, name, expected_length): length = len(obj) if length != expected_length: raise PyAMLException( - f"{name} does not have the expected " - f"number of items ({expected_length} items expected but got {length})" + f"{name} does not have the expected number of items ({expected_length} items expected but got {length})" ) @@ -105,16 +104,12 @@ def __initialize(self): if self._cfg.calibration_factors is None: self.__calibration_factors = np.ones(self.__nbMagnets) else: - self.__calibration_factors = _to_list_of_length( - self._cfg.calibration_factors, self.__nbMagnets - ) + self.__calibration_factors = _to_list_of_length(self._cfg.calibration_factors, self.__nbMagnets) if self._cfg.calibration_offsets is None: self.__calibration_offsets = np.zeros(self.__nbMagnets) else: - self.__calibration_offsets = _to_list_of_length( - self._cfg.calibration_offsets, self.__nbMagnets - ) + self.__calibration_offsets = _to_list_of_length(self._cfg.calibration_offsets, self.__nbMagnets) if self._cfg.crosstalk is None: self.__crosstalk = np.zeros(self.__nbMagnets) @@ -157,26 +152,23 @@ def compute_hardware_values(self, strengths: np.array) -> np.array: return np.array( [ model.compute_hardware_values([strength]) - for strength, model in zip(strengths, self.__sub_models) + for strength, model in zip(strengths, self.__sub_models, strict=True) ] ) def compute_strengths(self, currents: np.array) -> np.array: return np.array( - [ - model.compute_strengths([current]) - for current, model in zip(currents, self.__sub_models) - ] + [model.compute_strengths([current]) for current, model in zip(currents, self.__sub_models, strict=True)] ) def get_strength_units(self) -> list[str]: return self._cfg.units def get_hardware_units(self) -> list[str]: - return [p.unit() for p in self._cfg.__sub_models] + return [device_unit(self._cfg.powerconverter)] * self.__nbMagnets - def get_devices(self) -> list[DeviceAccess]: - return self._cfg.powerconverters + def get_devices(self) -> list[DeviceAccessRef]: + return [self._cfg.powerconverter] * self.__nbMagnets def set_magnet_rigidity(self, brho: np.double): self.__brho = brho diff --git a/pyaml/magnet/model.py b/pyaml/magnet/model.py index cce2bfdc..55231284 100644 --- a/pyaml/magnet/model.py +++ b/pyaml/magnet/model.py @@ -3,7 +3,7 @@ import numpy as np import numpy.typing as npt -from ..control.deviceaccess import DeviceAccess +from ..control.deviceaccess import DeviceAccessRef class MagnetModel(metaclass=ABCMeta): @@ -13,9 +13,7 @@ class MagnetModel(metaclass=ABCMeta): """ @abstractmethod - def compute_hardware_values( - self, strengths: npt.NDArray[np.float64] - ) -> npt.NDArray[np.float64]: + def compute_hardware_values(self, strengths: npt.NDArray[np.float64]) -> npt.NDArray[np.float64]: """ Compute hardware value(s) from magnet strength(s) @@ -33,9 +31,7 @@ def compute_hardware_values( pass @abstractmethod - def compute_strengths( - self, hardware_values: npt.NDArray[np.float64] - ) -> npt.NDArray[np.float64]: + def compute_strengths(self, hardware_values: npt.NDArray[np.float64]) -> npt.NDArray[np.float64]: """ Compute magnet strength(s) from hardware value(s) @@ -79,7 +75,7 @@ def get_hardware_units(self) -> list[str]: pass @abstractmethod - def get_devices(self) -> list[DeviceAccess | None]: + def get_devices(self) -> list[DeviceAccessRef | None]: """ Get device handles diff --git a/pyaml/magnet/serialized_magnet.py b/pyaml/magnet/serialized_magnet.py index 10613c04..570783bb 100644 --- a/pyaml/magnet/serialized_magnet.py +++ b/pyaml/magnet/serialized_magnet.py @@ -5,7 +5,7 @@ from ..common import abstract from ..common.element import Element, ElementConfigModel, __pyaml_repr__ from ..configuration import Factory -from ..control.deviceaccess import DeviceAccess +from ..control.deviceaccess import DeviceAccessRef from .function_mapping import function_map from .magnet import Magnet, MagnetConfigModel from .model import MagnetModel @@ -170,8 +170,5 @@ def set_energy(self, energy: float): def __repr__(self): return __pyaml_repr__(self) - def get_devices(self) -> list[DeviceAccess]: - if isinstance(self.model.powerconverter, list): - return self.model.powerconverter - else: - return [self._cfg.powerconverter] + def get_devices(self) -> list[DeviceAccessRef]: + return self.model.get_devices() diff --git a/pyaml/magnet/spline_model.py b/pyaml/magnet/spline_model.py index 2f589753..dbc6c390 100644 --- a/pyaml/magnet/spline_model.py +++ b/pyaml/magnet/spline_model.py @@ -4,7 +4,7 @@ from ..common.element import __pyaml_repr__ from ..configuration.curve import Curve -from ..control.deviceaccess import DeviceAccess +from ..control.deviceaccess import DeviceAccessRef, device_unit from .model import MagnetModel # Define the main class name for this module @@ -37,7 +37,7 @@ class ConfigModel(BaseModel): model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") curve: Curve - powerconverter: DeviceAccess | None + powerconverter: DeviceAccessRef | None calibration_factor: float = 1.0 calibration_offset: float = 0.0 crosstalk: float = 1.0 @@ -54,18 +54,13 @@ class SplineMagnetModel(MagnetModel): def __init__(self, cfg: ConfigModel): self._cfg = cfg self.__curve = cfg.curve.get_curve() - self.__curve[:, 1] = ( - self.__curve[:, 1] * cfg.calibration_factor * cfg.crosstalk - + cfg.calibration_offset - ) + self.__curve[:, 1] = self.__curve[:, 1] * cfg.calibration_factor * cfg.crosstalk + cfg.calibration_offset rcurve = Curve.inverse(self.__curve) self.__strength_unit = cfg.unit - self.__hardware_unit = cfg.powerconverter.unit() + self.__hardware_unit = device_unit(cfg.powerconverter) self.__brho = np.nan self.__ps = cfg.powerconverter - self.__spl = make_smoothing_spline( - self.__curve[:, 0], self.__curve[:, 1], lam=cfg.alpha - ) + self.__spl = make_smoothing_spline(self.__curve[:, 0], self.__curve[:, 1], lam=cfg.alpha) self.__rspl = make_smoothing_spline(rcurve[:, 0], rcurve[:, 1], lam=cfg.alpha) def compute_hardware_values(self, strengths: np.array) -> np.array: @@ -82,7 +77,7 @@ def get_strength_units(self) -> list[str]: def get_hardware_units(self) -> list[str]: return [self.__hardware_unit] if self.__hardware_unit is not None else [""] - def get_devices(self) -> list[DeviceAccess]: + def get_devices(self) -> list[DeviceAccessRef]: return [self.__ps] def set_magnet_rigidity(self, brho: np.double): diff --git a/pyaml/rf/rf_plant.py b/pyaml/rf/rf_plant.py index 5c5bfe53..8d6f1c03 100644 --- a/pyaml/rf/rf_plant.py +++ b/pyaml/rf/rf_plant.py @@ -9,7 +9,7 @@ from .. import PyAMLException from ..common import abstract from ..common.element import Element, ElementConfigModel -from ..control.deviceaccess import DeviceAccess +from ..control.deviceaccess import DeviceAccessRef from .rf_transmitter import RFTransmitter # Define the main class name for this module @@ -17,7 +17,7 @@ class ConfigModel(ElementConfigModel): - masterclock: DeviceAccess | None = None + masterclock: DeviceAccessRef | None = None """Device to apply main RF frequency""" transmitters: list[RFTransmitter] | None = None """List of RF trasnmitters""" @@ -91,4 +91,4 @@ def set_and_wait(self, value: float): raise NotImplementedError("Not implemented yet.") def unit(self) -> str: - return self.__trans[0]._cfg.phase.unit() + return self.__trans[0].voltage.unit() diff --git a/pyaml/rf/rf_transmitter.py b/pyaml/rf/rf_transmitter.py index 013dbbf7..c78937fc 100644 --- a/pyaml/rf/rf_transmitter.py +++ b/pyaml/rf/rf_transmitter.py @@ -9,7 +9,7 @@ from .. import PyAMLException from ..common import abstract from ..common.element import Element, ElementConfigModel -from ..control.deviceaccess import DeviceAccess +from ..control.deviceaccess import DeviceAccessRef # Define the main class name for this module PYAMLCLASS = "RFTransmitter" @@ -36,8 +36,8 @@ class ConfigModel(ElementConfigModel): model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") - voltage: DeviceAccess | None = None - phase: DeviceAccess | None = None + voltage: DeviceAccessRef | None = None + phase: DeviceAccessRef | None = None cavities: list[str] harmonic: float = 1.0 distribution: float = 1.0 @@ -70,9 +70,7 @@ def voltage(self) -> abstract.ReadWriteFloatScalar: If transmitter is unattached or has no voltage device defined """ if self.__voltage is None: - raise PyAMLException( - f"{str(self)} is unattached or has no voltage device defined" - ) + raise PyAMLException(f"{str(self)} is unattached or has no voltage device defined") return self.__voltage @property @@ -91,9 +89,7 @@ def phase(self) -> abstract.ReadWriteFloatScalar: If transmitter is unattached or has no phase device defined """ if self.__phase is None: - raise PyAMLException( - f"{str(self)} is unattached or has no phase device defined" - ) + raise PyAMLException(f"{str(self)} is unattached or has no phase device defined") return self.__phase def attach( diff --git a/tests/config/bad_catalog_duplicate_key.yaml b/tests/config/bad_catalog_duplicate_key.yaml new file mode 100644 index 00000000..0234fcb0 --- /dev/null +++ b/tests/config/bad_catalog_duplicate_key.yaml @@ -0,0 +1,18 @@ +type: pyaml.accelerator +facility: ESRF +machine: sr +energy: 6e9 +data_folder: /data/store +devices: [] +catalogs: + - type: pyaml.configuration.static_catalog + name: duplicate-refs + refs: + duplicated/key: + type: tango.pyaml.attribute + attribute: sr/test/one + unit: A + duplicated/key: + type: tango.pyaml.attribute + attribute: sr/test/two + unit: A diff --git a/tests/config/catalog_dynamic.yaml b/tests/config/catalog_dynamic.yaml new file mode 100644 index 00000000..63bfb4db --- /dev/null +++ b/tests/config/catalog_dynamic.yaml @@ -0,0 +1,26 @@ +type: pyaml.accelerator +facility: ESRF +machine: sr +energy: 6e9 +controls: + - type: tango.pyaml.controlsystem + tango_host: ebs-simu-3:10000 + name: live + catalog: tango-db + - type: tango.pyaml.controlsystem + tango_host: ebs-simu-3:10000 + name: ops + catalog: tango-db +data_folder: /data/store +catalogs: + - type: tango.pyaml.attribute_catalog + name: tango-db + read_only: true + unit: mm +devices: + - type: pyaml.bpm.bpm + name: BPM_C01-02 + model: + type: pyaml.bpm.bpm_simple_model + x_pos: srdiag/bpm/c01-02/SA_HPosition + y_pos: srdiag/bpm/c01-02/SA_VPosition diff --git a/tests/config/catalog_named.yaml b/tests/config/catalog_named.yaml new file mode 100644 index 00000000..22e094fc --- /dev/null +++ b/tests/config/catalog_named.yaml @@ -0,0 +1,105 @@ +type: pyaml.accelerator +facility: ESRF +machine: sr +energy: 6e9 +harmonic_number: 992 +controls: + - type: tango.pyaml.controlsystem + tango_host: ebs-simu-3:10000 + name: live + catalog: device-catalog + - type: tango.pyaml.controlsystem + tango_host: ebs-simu-3:10000 + name: ops + catalog: device-catalog +data_folder: /data/store +catalogs: + - type: pyaml.configuration.static_catalog + name: device-catalog + refs: + BPM_C01-01/x: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-01/SA_HPosition + unit: mm + BPM_C01-01/y: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-01/SA_VPosition + unit: mm + BPM_C01-01/x_offset: + type: tango.pyaml.attribute + attribute: srdiag/bpm/c01-01/HOffset + unit: mm + BPM_C01-01/y_offset: + type: tango.pyaml.attribute + attribute: srdiag/bpm/c01-01/VOffset + unit: mm + BPM_C01-01/tilt: + type: tango.pyaml.attribute + attribute: srdiag/bpm/c01-01/Tilt_Angle + unit: rad + tune/h: + type: tango.pyaml.attribute_read_only + attribute: srdiag/beam-tune/main/Qh + unit: "1" + tune/v: + type: tango.pyaml.attribute_read_only + attribute: srdiag/beam-tune/main/Qv + unit: "1" + rf/masterclock: + type: tango.pyaml.attribute + attribute: sy/ms/1/Frequency + unit: Hz + QF1A-C01/current: + type: tango.pyaml.attribute + attribute: sr/ps-qf1/c01-a/current + unit: A + SH1A-C01/ps1: + type: tango.pyaml.attribute + attribute: srmag/ps-corr-sh1/c01-a-ch1/current + unit: A + SH1A-C01/ps2: + type: tango.pyaml.attribute + attribute: srmag/ps-corr-sh1/c01-a-ch2/current + unit: A + SH1A-C01/ps3: + type: tango.pyaml.attribute + attribute: srmag/ps-corr-sh1/c01-a-ch3/current + unit: A +devices: + - type: pyaml.bpm.bpm + name: BPM_C01-01 + model: + type: pyaml.bpm.bpm_tiltoffset_model + x_pos: BPM_C01-01/x + y_pos: BPM_C01-01/y + x_offset: BPM_C01-01/x_offset + y_offset: BPM_C01-01/y_offset + tilt: BPM_C01-01/tilt + - type: pyaml.diagnostics.tune_monitor + name: BETATRON_TUNE + tune_h: tune/h + tune_v: tune/v + rf_plant_name: RF + - type: pyaml.rf.rf_plant + name: RF + masterclock: rf/masterclock + - type: pyaml.magnet.quadrupole + name: QF1A-C01 + model: + type: pyaml.magnet.identity_model + unit: A + powerconverter: QF1A-C01/current + - type: pyaml.magnet.cfm_magnet + name: SH1A-C01 + mapping: + - [B0, SH1A-C01-H] + - [A0, SH1A-C01-V] + - [A1, SH1A-C01-SQ] + model: + type: pyaml.magnet.identity_cfm_model + multipoles: [B0, A0, A1] + powerconverters: + - SH1A-C01/ps1 + - SH1A-C01/ps2 + - SH1A-C01/ps3 + units: [A, A, A] diff --git a/tests/dummy_cs/tango-pyaml/tango/pyaml/attribute_catalog.py b/tests/dummy_cs/tango-pyaml/tango/pyaml/attribute_catalog.py new file mode 100644 index 00000000..1e5907fc --- /dev/null +++ b/tests/dummy_cs/tango-pyaml/tango/pyaml/attribute_catalog.py @@ -0,0 +1,38 @@ +from pydantic import ConfigDict + +from pyaml import PyAMLException +from pyaml.configuration.catalog import Catalog, CatalogConfigModel + +from .attribute import Attribute +from .attribute import ConfigModel as AttributeConfigModel +from .attribute_read_only import AttributeReadOnly +from .attribute_read_only import ConfigModel as AttributeReadOnlyConfigModel + +PYAMLCLASS = "AttributeCatalog" + + +class ConfigModel(CatalogConfigModel): + model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") + + read_only: bool = False + unit: str = "" + + +class AttributeCatalog(Catalog): + def __init__(self, cfg: ConfigModel): + super().__init__(cfg) + self._attached_control_systems: list[str] = [] + + def attach_control_system(self, control_system): + self._attached_control_systems.append(control_system.name()) + + def resolve(self, key: str): + if not self._attached_control_systems: + raise PyAMLException(f"Catalog '{self.get_name()}' must be attached to a control system before resolve()") + + if self._cfg.read_only: + return AttributeReadOnly(AttributeReadOnlyConfigModel(attribute=key, unit=self._cfg.unit)) + return Attribute(AttributeConfigModel(attribute=key, unit=self._cfg.unit)) + + def attached_control_systems(self) -> list[str]: + return self._attached_control_systems diff --git a/tests/dummy_cs/tango-pyaml/tango/pyaml/controlsystem.py b/tests/dummy_cs/tango-pyaml/tango/pyaml/controlsystem.py index 68fee777..7abb36f3 100644 --- a/tests/dummy_cs/tango-pyaml/tango/pyaml/controlsystem.py +++ b/tests/dummy_cs/tango-pyaml/tango/pyaml/controlsystem.py @@ -3,6 +3,7 @@ from pydantic import BaseModel, ConfigDict +from pyaml.configuration.catalog import Catalog from pyaml.control.controlsystem import ControlSystem from pyaml.control.deviceaccess import DeviceAccess @@ -14,6 +15,7 @@ class ConfigModel(BaseModel): name: str tango_host: str + catalog: Catalog | str | None = None debug_level: str = None diff --git a/tests/test_catalogs.py b/tests/test_catalogs.py new file mode 100644 index 00000000..3ea2b597 --- /dev/null +++ b/tests/test_catalogs.py @@ -0,0 +1,240 @@ +import numpy as np +import pytest + +from pyaml import PyAMLConfigException, PyAMLException +from pyaml.accelerator import Accelerator + + +@pytest.mark.parametrize( + "install_test_package", + [{"name": "tango-pyaml", "path": "tests/dummy_cs/tango-pyaml"}], + indirect=True, +) +def test_named_catalog_is_shared_and_resolves_devices(install_test_package): + sr = Accelerator.load("tests/config/catalog_named.yaml") + + shared_catalog = sr.get_catalog("device-catalog") + assert sr.live.get_catalog() is shared_catalog + assert sr.ops.get_catalog() is shared_catalog + + bpm = sr.live.get_bpm("BPM_C01-01") + assert np.allclose(bpm.positions.get(), np.array([0.0, 0.0])) + bpm.offset.set(np.array([0.1, 0.2])) + assert np.allclose(bpm.offset.get(), np.array([0.1, 0.2])) + bpm.tilt.set(0.01) + assert bpm.tilt.get() == 0.01 + + quad = sr.live.get_magnet("QF1A-C01") + quad.hardware.set(1.2) + assert quad.hardware.get() == 1.2 + + cfm_h = sr.live.get_magnet("SH1A-C01-H") + cfm_h.hardware.set(2.5) + assert cfm_h.hardware.get() == 2.5 + + tune_monitor = sr.live.get_betatron_tune_monitor("BETATRON_TUNE") + assert np.allclose(tune_monitor.tune.get(), np.array([0.0, 0.0])) + + rf = sr.live.get_rf_plant("RF") + rf.frequency.set(1.23) + assert rf.frequency.get() == 1.23 + + +@pytest.mark.parametrize( + "install_test_package", + [{"name": "tango-pyaml", "path": "tests/dummy_cs/tango-pyaml"}], + indirect=True, +) +def test_inline_catalog_is_supported(install_test_package): + sr = Accelerator.from_dict( + { + "type": "pyaml.accelerator", + "facility": "ESRF", + "machine": "sr", + "energy": 6e9, + "data_folder": "/data/store", + "controls": [ + { + "type": "tango.pyaml.controlsystem", + "tango_host": "ebs-simu-3:10000", + "name": "live", + "catalog": { + "type": "pyaml.configuration.static_catalog", + "name": "inline-live", + "refs": { + "BPM_C02-01/x": { + "type": "tango.pyaml.attribute_read_only", + "attribute": "srdiag/bpm/c02-01/SA_HPosition", + "unit": "mm", + }, + "BPM_C02-01/y": { + "type": "tango.pyaml.attribute_read_only", + "attribute": "srdiag/bpm/c02-01/SA_VPosition", + "unit": "mm", + }, + }, + }, + } + ], + "devices": [ + { + "type": "pyaml.bpm.bpm", + "name": "BPM_C02-01", + "model": { + "type": "pyaml.bpm.bpm_simple_model", + "x_pos": "BPM_C02-01/x", + "y_pos": "BPM_C02-01/y", + }, + } + ], + } + ) + + assert sr.live.get_catalog().get_name() == "inline-live" + bpm = sr.live.get_bpm("BPM_C02-01") + assert np.allclose(bpm.positions.get(), np.array([0.0, 0.0])) + + +@pytest.mark.parametrize( + "install_test_package", + [{"name": "tango-pyaml", "path": "tests/dummy_cs/tango-pyaml"}], + indirect=True, +) +def test_dynamic_catalog_is_notified_on_attachment(install_test_package): + sr = Accelerator.load("tests/config/catalog_dynamic.yaml") + + catalog = sr.get_catalog("tango-db") + assert sr.live.get_catalog() is catalog + assert sr.ops.get_catalog() is catalog + assert catalog.attached_control_systems() == ["live", "ops"] + + bpm = sr.live.get_bpm("BPM_C01-02") + assert np.allclose(bpm.positions.get(), np.array([0.0, 0.0])) + + +@pytest.mark.parametrize( + "install_test_package", + [{"name": "tango-pyaml", "path": "tests/dummy_cs/tango-pyaml"}], + indirect=True, +) +def test_unknown_catalog_name_raises_config_error(install_test_package): + with pytest.raises(PyAMLConfigException, match="catalog missing-catalog not defined"): + Accelerator.from_dict( + { + "type": "pyaml.accelerator", + "facility": "ESRF", + "machine": "sr", + "energy": 6e9, + "data_folder": "/data/store", + "controls": [ + { + "type": "tango.pyaml.controlsystem", + "tango_host": "ebs-simu-3:10000", + "name": "live", + "catalog": "missing-catalog", + } + ], + "devices": [], + } + ) + + +@pytest.mark.parametrize( + "install_test_package", + [{"name": "tango-pyaml", "path": "tests/dummy_cs/tango-pyaml"}], + indirect=True, +) +def test_unresolved_catalog_key_raises_runtime_error(install_test_package): + with pytest.raises( + PyAMLConfigException, + match="Catalog 'device-catalog' cannot resolve key 'BPM_C03-01/y'", + ): + Accelerator.from_dict( + { + "type": "pyaml.accelerator", + "facility": "ESRF", + "machine": "sr", + "energy": 6e9, + "data_folder": "/data/store", + "catalogs": [ + { + "type": "pyaml.configuration.static_catalog", + "name": "device-catalog", + "refs": { + "BPM_C03-01/x": { + "type": "tango.pyaml.attribute_read_only", + "attribute": "srdiag/bpm/c03-01/SA_HPosition", + "unit": "mm", + } + }, + } + ], + "controls": [ + { + "type": "tango.pyaml.controlsystem", + "tango_host": "ebs-simu-3:10000", + "name": "live", + "catalog": "device-catalog", + } + ], + "devices": [ + { + "type": "pyaml.bpm.bpm", + "name": "BPM_C03-01", + "model": { + "type": "pyaml.bpm.bpm_simple_model", + "x_pos": "BPM_C03-01/x", + "y_pos": "BPM_C03-01/y", + }, + } + ], + } + ) + + +@pytest.mark.parametrize( + "install_test_package", + [{"name": "tango-pyaml", "path": "tests/dummy_cs/tango-pyaml"}], + indirect=True, +) +def test_duplicate_top_level_catalog_names_raise_config_error(install_test_package): + with pytest.raises(PyAMLConfigException, match="catalog duplicate already defined"): + Accelerator.from_dict( + { + "type": "pyaml.accelerator", + "facility": "ESRF", + "machine": "sr", + "energy": 6e9, + "data_folder": "/data/store", + "devices": [], + "catalogs": [ + { + "type": "pyaml.configuration.static_catalog", + "name": "duplicate", + "refs": { + "QF1/current": { + "type": "tango.pyaml.attribute", + "attribute": "sr/test/one", + "unit": "A", + } + }, + }, + { + "type": "pyaml.configuration.static_catalog", + "name": "duplicate", + "refs": { + "QF2/current": { + "type": "tango.pyaml.attribute", + "attribute": "sr/test/two", + "unit": "A", + } + }, + }, + ], + }, + ) + + +def test_duplicate_static_catalog_keys_raise_yaml_error(): + with pytest.raises(PyAMLException, match="duplicate key"): + Accelerator.load("tests/config/bad_catalog_duplicate_key.yaml") From 43e88f941d044e4fdce61161c9d0f3bb90c16730 Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Mon, 20 Apr 2026 11:14:24 +0200 Subject: [PATCH 02/19] Handle catalogs in configuration manager --- pyaml/configuration/manager.py | 11 ++++++++--- tests/test_configuration_manager.py | 23 +++++++++++++++++++++++ 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/pyaml/configuration/manager.py b/pyaml/configuration/manager.py index 7b8f582a..dfb26315 100644 --- a/pyaml/configuration/manager.py +++ b/pyaml/configuration/manager.py @@ -28,6 +28,7 @@ _VALID_QUERY_KEY_RE = re.compile(r"^[A-Z0-9_]+$") _CATEGORY_TITLES = { "controls": "Controls", + "catalogs": "Catalogs", "simulators": "Simulators", "arrays": "Arrays", "devices": "Devices", @@ -49,8 +50,8 @@ class ConfigurationManager: Notes ----- The manager only accepts accelerator-root fragments and merges named - categories such as ``controls``, ``simulators``, ``arrays`` and - ``devices``. + categories such as ``controls``, ``catalogs``, ``simulators``, + ``arrays`` and ``devices``. Examples -------- @@ -75,7 +76,7 @@ class ConfigurationManager: """ DEFAULT_TYPE = "pyaml.accelerator" - NAMED_CATEGORIES = ("controls", "simulators", "arrays", "devices") + NAMED_CATEGORIES = ("controls", "catalogs", "simulators", "arrays", "devices") _SUPPORTED_FILE_SUFFIXES = {".yaml", ".yml", ".json"} @classmethod @@ -776,6 +777,10 @@ def _format_entry(self, category: str, entry: dict[str, Any]) -> str: type_part = f" ({entry_type})" if entry_type else "" details: list[str] = [] + if category == "catalogs": + refs = entry.get("refs") + if isinstance(refs, dict): + details.append(f"refs={len(refs)}") if category == "arrays": patterns = entry.get("elements") if isinstance(patterns, list): diff --git a/tests/test_configuration_manager.py b/tests/test_configuration_manager.py index f5ee6b4f..0ea86a1e 100644 --- a/tests/test_configuration_manager.py +++ b/tests/test_configuration_manager.py @@ -193,6 +193,18 @@ def test_configuration_manager_accumulates_multiple_device_fragments( assert manager.get("devices", "BETATRON_TUNE")["type"] == "pyaml.diagnostics.tune_monitor" +def test_configuration_manager_tracks_catalogs_as_named_category(config_root_path): + manager = ConfigurationManager() + manager.add(config_root_path / "catalog_named.yaml") + + assert manager.categories() == ["controls", "catalogs", "devices"] + assert manager.keys("catalogs") == ["device-catalog"] + assert manager.has("catalogs", "device-catalog") + assert manager.get("catalogs", "device-catalog")["type"] == "pyaml.configuration.static_catalog" + assert "BPM_C01-01/x" in manager.get("catalogs", "device-catalog")["refs"] + assert manager.catalogs == ["device-catalog"] + + def test_accelerator_load_stays_compatible(config_manager_base_config): accelerator = Accelerator.load(config_manager_base_config) @@ -277,6 +289,17 @@ def test_configuration_manager_repr_is_yellow_pages_like( assert " ." in output +def test_configuration_manager_repr_includes_catalogs(config_root_path): + manager = ConfigurationManager() + manager.add(config_root_path / "catalog_named.yaml") + + output = repr(manager) + + assert str(manager) == output + assert "Catalogs:" in output + assert "device-catalog (pyaml.configuration.static_catalog) refs=14 source=catalog_named.yaml" in output + + def test_configuration_manager_yellow_pages_like_shortcuts( sr_base_fragment, sr_arrays_fragment, From 75d3b805d0420a6acc1c2d0b557552c588b4090f Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Mon, 20 Apr 2026 11:49:22 +0200 Subject: [PATCH 03/19] Remove dummy attribute_catalog and fix wrongly committed files --- pull_request_187.md | 327 ------------------ tests/config/catalog_dynamic.yaml | 26 -- .../tango/pyaml/attribute_catalog.py | 38 -- tests/test_catalogs.py | 21 +- 4 files changed, 13 insertions(+), 399 deletions(-) delete mode 100644 pull_request_187.md delete mode 100644 tests/config/catalog_dynamic.yaml delete mode 100644 tests/dummy_cs/tango-pyaml/tango/pyaml/attribute_catalog.py diff --git a/pull_request_187.md b/pull_request_187.md deleted file mode 100644 index 8ba09d81..00000000 --- a/pull_request_187.md +++ /dev/null @@ -1,327 +0,0 @@ -## Description - -Add named `Catalog` objects to the PyAML configuration so device references can be resolved by key at control-system attachment time. - -This is a major cross-cutting change. It must stay conceptually minimal, but it affects the full PyAML object model because any object configuration that currently carries `DeviceAccess` instances may now carry catalog keys instead. - -A catalog is only responsible for resolving a string key into a `DeviceAccess`. PyAML must provide a built-in catalog manager based on an explicit `key -> DeviceAccess` mapping. Catalogs may therefore be static or dynamic: - -- the built-in static catalog manager stores explicit `key -> DeviceAccess` entries; -- a dynamic catalog can reconstruct the `DeviceAccess` from the key alone, possibly by querying an external system. - -When a catalog is attached to a control system, the control system must notify the catalog of that attachment. This lifecycle notification is especially important for dynamic catalogs, which may need the control-system context to resolve keys correctly. - -Example: a project such as `tango-pyaml`, which already provides the Tango control-system integration, may expose a dedicated dynamic catalog implementation that queries the Tango database and builds the proper `DeviceAccess` from the requested key. - -Control systems must be able to use: - -- a single named catalog declared at accelerator level; -- or a single inline catalog declared directly inside the control-system configuration for convenience. - -The same catalog object may be referenced and shared by several control systems. - -This document is intentionally written so it can be used as an implementation prompt. The implementation must follow the scope and non-goals below. - -## Related Issue - -This project only accepts pull requests related to open issues. If suggesting a new feature or change, please discuss it in an issue first. - -- Fixes #187 - -Features/issues described there are: -- [ ] new feature: introduce top-level named catalogs in `pyaml.accelerator.ConfigModel`, because device resolution must be configurable independently from the element models. -- [ ] new feature: define a minimal catalog abstraction whose only required responsibility is `resolve(key) -> DeviceAccess`, because dynamic catalogs must not be forced to enumerate all valid keys. -- [ ] new feature: provide a built-in PyAML catalog manager backed by an explicit `key -> DeviceAccess` mapping, because a standard static implementation must exist without requiring an external plugin. -- [ ] new feature: allow a `ControlSystem` to declare `catalog: str | Catalog | None`, because each control system must use exactly one catalog, either by named reference or inline declaration. -- [ ] new feature: define a catalog attachment notification from `ControlSystem` to `Catalog`, because dynamic catalogs may require control-system-specific context before resolving keys. -- [ ] new feature: allow configuration fields across PyAML that currently store `DeviceAccess` objects to also accept string keys, because the actual device may now come from a catalog. -- [ ] new feature: support external catalog implementations loaded through the existing factory mechanism, because dynamic catalogs may require specialized logic such as reconstructing Tango `DeviceAccess` objects from an attribute key. - -## Scope and Non-Goals - -The implementation must stay within the following scope: - -- [ ] catalogs only resolve keys to `DeviceAccess`; -- [ ] catalog resolution happens lazily, when a `ControlSystem` is about to call `attach()` or `attach_array()`; -- [ ] existing configurations that provide direct `DeviceAccess` objects must keep working unchanged; -- [ ] the implementation must be applied consistently across PyAML objects, not only BPM-related classes. - -The following ideas are explicitly out of scope and must not be introduced: - -- [ ] no `CatalogView`; -- [ ] no `DeviceAccessProxy`; -- [ ] no sub-catalog or filtered catalog API; -- [ ] no `keys()` requirement on catalogs; -- [ ] no runtime propagation of catalog updates into already attached objects; -- [ ] no BPM-specific redesign just to support catalogs; -- [ ] no assumption that every catalog can enumerate or validate all possible keys ahead of time. - -## Expected Design - -Use the existing code structure and keep the change localized. - -- [ ] add a minimal catalog interface or base class under `pyaml.configuration` with an API centered on `resolve(key: str) -> DeviceAccess`; -- [ ] provide a built-in PyAML catalog manager for explicit config-defined `key -> DeviceAccess` entries; -- [ ] make `Catalog.name` part of the catalog object itself, so top-level catalogs are referenced by their own declared name; -- [ ] add a catalog lifecycle hook so a catalog can be notified when it is attached to a `ControlSystem`; -- [ ] extend `Accelerator.ConfigModel` with `catalogs: list[Catalog] | None`; -- [ ] keep a registry of named catalogs in `Accelerator`, with a small public accessor such as `get_catalog(name: str)`; -- [ ] extend control-system configuration so a control system can declare `catalog: str | Catalog | None`; -- [ ] resolve those catalog references during accelerator initialization, before `fill_device()` is called; -- [ ] inject the resolved catalog object into each control system; -- [ ] notify the catalog from the control system once the catalog is attached to it; -- [ ] add a small utility in `ControlSystem` to convert `DeviceAccess | str | None` into `DeviceAccess | None`; -- [ ] use that utility immediately before each `attach()` and `attach_array()` call instead of changing the attachment model itself. - -## Changes to existing functionality - -Describe the changes that had to be made to an existing functionality (if they were made) - -- [ ] `Accelerator` must now build and store named catalogs before attaching devices to control systems, because control systems may resolve string keys through one configured catalog, either by name or inline object. -- [ ] `ControlSystem` must notify its attached catalog of the attachment event, because dynamic catalogs may require the control-system context before `resolve()` is used. -- [ ] `ControlSystem.fill_device()` and related aggregation paths must resolve string keys into `DeviceAccess` objects before calling `attach()` / `attach_array()`, because models may now carry either an actual device or a catalog key. -- [ ] configuration models across PyAML that currently type device fields as `DeviceAccess` must be updated to accept `DeviceAccess | str`, while preserving their existing APIs as much as possible. -- [ ] direct `DeviceAccess` configuration remains supported and must not require a catalog. -- [ ] the built-in PyAML catalog manager becomes the default static catalog implementation used for named and inline mapping-based catalogs. -- [ ] error handling must stay explicit: unknown named catalog, missing resolver on a control system, or unresolved key must raise clear `PyAMLException` / `PyAMLConfigException` messages. - -## Implementation Notes - -Use these constraints when implementing: - -- [ ] prefer minimal API additions over broad refactors; -- [ ] keep the notion of catalog attached to the control-system side, not to BPM-specific runtime helpers; -- [ ] do not add any API that implies catalogs are enumerable; -- [ ] a control system stores at most one resolved catalog reference; -- [ ] if no catalog resolves a key, raise a clear error mentioning the key and the control-system name when available; -- [ ] if a control system references a named catalog, resolve it once during accelerator initialization and reuse that same catalog object; -- [ ] it must be possible for several control systems to reference the same catalog object; -- [ ] if the same catalog object is shared by several control systems, the catalog attachment notification API must support that lifecycle cleanly; -- [ ] if duplicate catalog names are declared at accelerator level, fail fast during accelerator construction; -- [ ] if a static catalog contains duplicate explicit keys, fail fast during its validation; -- [ ] the built-in catalog manager should remain simple: explicit mapping storage plus `resolve(key)`, without any catalog-view or synchronization behavior; -- [ ] keep external dynamic catalogs pluggable through `type`-based factory loading; -- [ ] document and preserve the extension path for external providers such as `tango-pyaml`, which may use their own control-system metadata source to reconstruct `DeviceAccess` objects dynamically; -- [ ] treat this as a project-wide typing and attachment change, and review all PyAML object families for `DeviceAccess`-typed config fields and attachment flows. - -Recommended areas to update: - -- [ ] `pyaml/accelerator.py` -- [ ] `pyaml/control/controlsystem.py` -- [ ] new catalog modules under `pyaml/configuration/` -- [ ] all config models and attachment paths that currently accept or manipulate `DeviceAccess`, including BPMs, magnets, serialized magnets, RF, tune monitors, arrays, tools, and any external object integrated through the standard PyAML construction flow - -## Impacted PyAML Objects - -The implementation must be reviewed against the following PyAML object families. - -Directly impacted objects and models: - -- [ ] `Accelerator` -- [ ] `ControlSystem` -- [ ] `BPMModel` -- [ ] `BPMSimpleModel` -- [ ] `BPMTiltOffsetModel` -- [ ] `BetatronTuneMonitor` -- [ ] `MagnetModel` -- [ ] `IdentityMagnetModel` -- [ ] `IdentityCFMagnetModel` -- [ ] `LinearMagnetModel` -- [ ] `LinearCFMagnetModel` -- [ ] `LinearSerializedMagnetModel` -- [ ] `SplineMagnetModel` -- [ ] `RFPlant` -- [ ] `RFTransmitter` - -Indirectly impacted runtime objects and attachment paths: - -- [ ] `BPM` -- [ ] `Magnet` -- [ ] `CombinedFunctionMagnet` -- [ ] `SerializedMagnets` -- [ ] control-system magnet aggregators -- [ ] control-system BPM aggregators -- [ ] control-system RF attachment flow -- [ ] control-system tune-monitor attachment flow -- [ ] any external object built through the standard PyAML factory flow whose config contains `DeviceAccess` fields - -Objects not expected to require direct catalog-aware config changes, but that must still be checked for regressions: - -- [ ] `Simulator` -- [ ] arrays built on top of already attached objects -- [ ] `TuningTool` -- [ ] `MeasurementTool` -- [ ] `YellowPages` - -## Configuration Examples - -The examples below illustrate the intended configuration style. - -Top-level static catalogs provided by base PyAML: - -```yaml -type: pyaml.accelerator -facility: SOLEIL -machine: StorageRing -energy: 2.75e9 -data_folder: . - -catalogs: - - type: pyaml.configuration.static_catalog - name: bpm-common - refs: - BPM_C01-01/x: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-01/XPosSA - unit: mm - BPM_C01-01/y: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-01/YPosSA - unit: mm - BPM_C01-01/tilt: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-01/Tilt - unit: rad -``` - -Control system using a named shared catalog: - -```yaml -controls: - - type: tango.pyaml.controlsystem - name: live - catalog: bpm-common - - - type: tango.pyaml.controlsystem - name: ops - catalog: bpm-common -``` - -Objects using catalog keys instead of direct `DeviceAccess` declarations: - -```yaml -devices: - - type: pyaml.bpm.bpm - name: BPM_C01-01 - model: - type: pyaml.bpm.bpm_tiltoffset_model - x_pos: BPM_C01-01/x - y_pos: BPM_C01-01/y - tilt: BPM_C01-01/tilt - - - type: pyaml.diagnostics.tune_monitor - name: tune - tune_h: tune/h - tune_v: tune/v -``` - -Combined-function magnet example using catalog keys for power converters: - -```yaml -devices: - - type: pyaml.magnet.cfm_magnet - name: SH1A-C01 - mapping: - - [B0, SH1A-C01-H] - - [A0, SH1A-C01-V] - - [A1, SH1A-C01-SQ] - model: - type: pyaml.magnet.linear_cfm_model - multipoles: [B0, A0, A1] - units: [rad, rad, m-1] - pseudo_factors: [1.0, -1.0, -1.0] - curves: - - type: pyaml.configuration.csvcurve - file: sr/magnet_models/SH1_SH3_h_strength.csv - - type: pyaml.configuration.csvcurve - file: sr/magnet_models/SH1_SH3_v_strength.csv - - type: pyaml.configuration.csvcurve - file: sr/magnet_models/SH1_SH3_sq_strength.csv - matrix: - type: pyaml.configuration.csvmatrix - file: sr/magnet_models/SH_matrix.csv - powerconverters: - - SH1A-C01/ps1 - - SH1A-C01/ps2 - - SH1A-C01/ps3 -``` - -With matching static catalog entries: - -```yaml -catalogs: - - type: pyaml.configuration.static_catalog - name: correctors - refs: - SH1A-C01/ps1: - type: tango.pyaml.attribute - attribute: srmag/ps-corr-sh1/c01-a-ch1/current - unit: A - SH1A-C01/ps2: - type: tango.pyaml.attribute - attribute: srmag/ps-corr-sh1/c01-a-ch2/current - unit: A - SH1A-C01/ps3: - type: tango.pyaml.attribute - attribute: srmag/ps-corr-sh1/c01-a-ch3/current - unit: A -``` - -Dynamic external catalog example with `tango-pyaml`: - -```yaml -catalogs: - - type: tango.pyaml.attribute_catalog - name: tango-db - domain: SR - family: BPM -``` - -In this case, the catalog does not need to declare all keys explicitly. It may reconstruct the proper `DeviceAccess` on demand by querying the Tango database from the requested key. - -Control system using an inline catalog: - -```yaml -controls: - - type: tango.pyaml.controlsystem - name: live - catalog: - type: pyaml.configuration.static_catalog - name: live-local - refs: - tune/h: - type: tango.pyaml.attribute_read_only - attribute: srdiag/tune/X - unit: "" - tune/v: - type: tango.pyaml.attribute_read_only - attribute: srdiag/tune/Z - unit: "" -``` - -Control system using a dynamic external catalog: - -```yaml -controls: - - type: tango.pyaml.controlsystem - name: live - catalog: tango-db -``` - -## Testing - The following tests (compatible with pytest) should be added: - - [ ] load an accelerator with top-level named catalogs and resolve a device key from a control system - - [ ] share one named catalog between several control systems and verify they reference the same catalog object - - [ ] load a control system with an inline catalog and resolve a device key - - [ ] keep existing behavior when a config provides direct `DeviceAccess` objects instead of keys - - [ ] fail clearly on unknown catalog name referenced by a control system - - [ ] fail clearly on unresolved key - - [ ] fail clearly on duplicate top-level catalog names - - [ ] fail clearly on duplicate keys inside a static catalog - - [ ] validate at least one dynamic catalog fixture that reconstructs a `DeviceAccess` from a key without a predeclared entry list - -## Verify that your checklist complies with the project -- [ ] New and existing unit tests pass locally -- [ ] Tests were added to prove that all features/changes are effective -- [ ] The code is commented where appropriate -- [ ] Any existing features are not broken (unless there is an explicit change to an existing functionality) diff --git a/tests/config/catalog_dynamic.yaml b/tests/config/catalog_dynamic.yaml deleted file mode 100644 index 63bfb4db..00000000 --- a/tests/config/catalog_dynamic.yaml +++ /dev/null @@ -1,26 +0,0 @@ -type: pyaml.accelerator -facility: ESRF -machine: sr -energy: 6e9 -controls: - - type: tango.pyaml.controlsystem - tango_host: ebs-simu-3:10000 - name: live - catalog: tango-db - - type: tango.pyaml.controlsystem - tango_host: ebs-simu-3:10000 - name: ops - catalog: tango-db -data_folder: /data/store -catalogs: - - type: tango.pyaml.attribute_catalog - name: tango-db - read_only: true - unit: mm -devices: - - type: pyaml.bpm.bpm - name: BPM_C01-02 - model: - type: pyaml.bpm.bpm_simple_model - x_pos: srdiag/bpm/c01-02/SA_HPosition - y_pos: srdiag/bpm/c01-02/SA_VPosition diff --git a/tests/dummy_cs/tango-pyaml/tango/pyaml/attribute_catalog.py b/tests/dummy_cs/tango-pyaml/tango/pyaml/attribute_catalog.py deleted file mode 100644 index 1e5907fc..00000000 --- a/tests/dummy_cs/tango-pyaml/tango/pyaml/attribute_catalog.py +++ /dev/null @@ -1,38 +0,0 @@ -from pydantic import ConfigDict - -from pyaml import PyAMLException -from pyaml.configuration.catalog import Catalog, CatalogConfigModel - -from .attribute import Attribute -from .attribute import ConfigModel as AttributeConfigModel -from .attribute_read_only import AttributeReadOnly -from .attribute_read_only import ConfigModel as AttributeReadOnlyConfigModel - -PYAMLCLASS = "AttributeCatalog" - - -class ConfigModel(CatalogConfigModel): - model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") - - read_only: bool = False - unit: str = "" - - -class AttributeCatalog(Catalog): - def __init__(self, cfg: ConfigModel): - super().__init__(cfg) - self._attached_control_systems: list[str] = [] - - def attach_control_system(self, control_system): - self._attached_control_systems.append(control_system.name()) - - def resolve(self, key: str): - if not self._attached_control_systems: - raise PyAMLException(f"Catalog '{self.get_name()}' must be attached to a control system before resolve()") - - if self._cfg.read_only: - return AttributeReadOnly(AttributeReadOnlyConfigModel(attribute=key, unit=self._cfg.unit)) - return Attribute(AttributeConfigModel(attribute=key, unit=self._cfg.unit)) - - def attached_control_systems(self) -> list[str]: - return self._attached_control_systems diff --git a/tests/test_catalogs.py b/tests/test_catalogs.py index 3ea2b597..137e6a7a 100644 --- a/tests/test_catalogs.py +++ b/tests/test_catalogs.py @@ -3,6 +3,7 @@ from pyaml import PyAMLConfigException, PyAMLException from pyaml.accelerator import Accelerator +from pyaml.configuration.static_catalog import StaticCatalog @pytest.mark.parametrize( @@ -100,16 +101,20 @@ def test_inline_catalog_is_supported(install_test_package): [{"name": "tango-pyaml", "path": "tests/dummy_cs/tango-pyaml"}], indirect=True, ) -def test_dynamic_catalog_is_notified_on_attachment(install_test_package): - sr = Accelerator.load("tests/config/catalog_dynamic.yaml") +def test_catalog_is_notified_when_attached_to_control_systems(install_test_package, monkeypatch): + attached = [] + original = StaticCatalog.attach_control_system - catalog = sr.get_catalog("tango-db") - assert sr.live.get_catalog() is catalog - assert sr.ops.get_catalog() is catalog - assert catalog.attached_control_systems() == ["live", "ops"] + def record_attachment(self, control_system): + attached.append((self.get_name(), control_system.name())) + return original(self, control_system) - bpm = sr.live.get_bpm("BPM_C01-02") - assert np.allclose(bpm.positions.get(), np.array([0.0, 0.0])) + monkeypatch.setattr(StaticCatalog, "attach_control_system", record_attachment) + + sr = Accelerator.load("tests/config/catalog_named.yaml") + + assert sr.live.get_catalog() is sr.ops.get_catalog() + assert attached == [("device-catalog", "live"), ("device-catalog", "ops")] @pytest.mark.parametrize( From 4f45ceeae7250d2abb7ccb00659d4b722928d07c Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Mon, 20 Apr 2026 12:12:00 +0200 Subject: [PATCH 04/19] Documentation --- pyaml/apidoc/gen_api.py | 2 + pyaml/configuration/catalog.py | 73 +++++++++++++++++++++++++-- pyaml/configuration/static_catalog.py | 65 ++++++++++++++++++++++++ 3 files changed, 137 insertions(+), 3 deletions(-) diff --git a/pyaml/apidoc/gen_api.py b/pyaml/apidoc/gen_api.py index 148e6873..6635648a 100644 --- a/pyaml/apidoc/gen_api.py +++ b/pyaml/apidoc/gen_api.py @@ -31,6 +31,7 @@ "pyaml.common.element", "pyaml.common.element_holder", "pyaml.common.exception", + "pyaml.configuration.catalog", "pyaml.configuration.csvcurve", "pyaml.configuration.csvmatrix", "pyaml.configuration.curve", @@ -40,6 +41,7 @@ "pyaml.configuration.inline_matrix", "pyaml.configuration.manager", "pyaml.configuration.matrix", + "pyaml.configuration.static_catalog", "pyaml.control.abstract_impl", "pyaml.control.controlsystem", "pyaml.control.deviceaccess", diff --git a/pyaml/configuration/catalog.py b/pyaml/configuration/catalog.py index 98b46cd8..9a8fd55b 100644 --- a/pyaml/configuration/catalog.py +++ b/pyaml/configuration/catalog.py @@ -1,3 +1,13 @@ +""" +catalog.py + +Catalog abstractions used by :mod:`pyaml.configuration`. + +Catalogs provide a stable public API for resolving configuration keys +into concrete :class:`~pyaml.control.deviceaccess.DeviceAccess` +instances at control-system attachment time. +""" + from abc import ABCMeta, abstractmethod from typing import TYPE_CHECKING @@ -10,25 +20,82 @@ class CatalogConfigModel(BaseModel): + r""" + Base configuration model for named catalogs. + + Parameters + ---------- + name : str + Unique catalog identifier used in accelerator and control-system + configuration. + """ + model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") name: str class Catalog(metaclass=ABCMeta): - """Base abstraction for resolving a key into a DeviceAccess.""" + r""" + Base abstraction for resolving catalog keys into devices. + + A :class:`Catalog` is attached to a + :class:`~pyaml.control.controlsystem.ControlSystem` and is then used + to resolve string references found in PyAML object configuration + into concrete :class:`~pyaml.control.deviceaccess.DeviceAccess` + instances. + + Notes + ----- + Base PyAML provides :class:`~pyaml.configuration.static_catalog.StaticCatalog` + as the standard mapping-based implementation. External projects may + derive from :class:`Catalog` to implement different resolution + strategies while preserving the same public API. + """ def __init__(self, cfg: CatalogConfigModel): self._cfg = cfg def get_name(self) -> str: + r""" + Return the catalog name. + + Returns + ------- + str + Catalog identifier. + """ return self._cfg.name def attach_control_system(self, control_system: "ControlSystem"): - """Lifecycle hook called when a control system attaches this catalog.""" + r""" + Notify the catalog that a control system attached it. + + Parameters + ---------- + control_system : ControlSystem + Control system using this catalog. + + Notes + ----- + The default implementation is a no-op. Subclasses may override + this hook to capture attachment context. + """ return None @abstractmethod def resolve(self, key: str) -> DeviceAccess: - """Resolve a catalog key into a concrete DeviceAccess.""" + r""" + Resolve a catalog key into a device access object. + + Parameters + ---------- + key : str + Catalog key to resolve. + + Returns + ------- + DeviceAccess + Resolved device access instance. + """ raise NotImplementedError diff --git a/pyaml/configuration/static_catalog.py b/pyaml/configuration/static_catalog.py index cb2d6d98..05bd406b 100644 --- a/pyaml/configuration/static_catalog.py +++ b/pyaml/configuration/static_catalog.py @@ -1,3 +1,9 @@ +""" +static_catalog.py + +Built-in mapping-based catalog implementation for PyAML. +""" + from pydantic import ConfigDict, model_validator from pyaml import PyAMLException @@ -8,23 +14,82 @@ class ConfigModel(CatalogConfigModel): + r""" + Configuration model for :class:`StaticCatalog`. + + Parameters + ---------- + name : str + Catalog identifier. + refs : dict[str, DeviceAccess] + Explicit mapping from catalog keys to device access objects. + """ + model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") refs: dict[str, DeviceAccess] @model_validator(mode="after") def validate_refs(self) -> "ConfigModel": + r""" + Validate that the catalog contains at least one mapping entry. + + Returns + ------- + ConfigModel + The validated configuration model. + """ if len(self.refs) == 0: raise ValueError("StaticCatalog.refs must contain at least one entry") return self class StaticCatalog(Catalog): + r""" + Catalog implementation backed by an explicit ``key -> DeviceAccess`` mapping. + + :class:`StaticCatalog` is the standard catalog implementation + provided by base PyAML. It resolves configuration keys directly + from the mapping declared in the configuration file. + + Examples + -------- + + .. code-block:: yaml + + catalogs: + - type: pyaml.configuration.static_catalog + name: bpm-common + refs: + BPM_C01-01/x: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-01/XPosSA + unit: mm + """ + def __init__(self, cfg: ConfigModel): super().__init__(cfg) self._refs = cfg.refs def resolve(self, key: str) -> DeviceAccess: + r""" + Resolve a key from the static mapping. + + Parameters + ---------- + key : str + Catalog key to resolve. + + Returns + ------- + DeviceAccess + Device access stored for ``key``. + + Raises + ------ + PyAMLException + If the key is not present in the catalog. + """ try: return self._refs[key] except KeyError as exc: From 90fb53854c4cea089f83efd897731180d666bfff Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Mon, 20 Apr 2026 13:35:18 +0200 Subject: [PATCH 05/19] Bind catalogs per control system during key resolution --- pyaml/configuration/__init__.py | 3 +- pyaml/configuration/catalog.py | 59 ++++++++++++++--------- pyaml/control/controlsystem.py | 10 ++-- tests/test_catalogs.py | 83 +++++++++++++++++++++++++++++++++ 4 files changed, 127 insertions(+), 28 deletions(-) diff --git a/pyaml/configuration/__init__.py b/pyaml/configuration/__init__.py index fff8a4e7..089c3d0e 100644 --- a/pyaml/configuration/__init__.py +++ b/pyaml/configuration/__init__.py @@ -2,7 +2,7 @@ PyAML configuration module """ -from .catalog import Catalog, CatalogConfigModel +from .catalog import Catalog, CatalogConfigModel, CatalogResolver from .factory import Factory from .fileloader import get_root_folder, set_root_folder from .manager import ConfigurationManager, UnsupportedConfigurationRootError @@ -13,6 +13,7 @@ "UnsupportedConfigurationRootError", "Catalog", "CatalogConfigModel", + "CatalogResolver", "StaticCatalog", "Factory", "get_root_folder", diff --git a/pyaml/configuration/catalog.py b/pyaml/configuration/catalog.py index 9a8fd55b..c46fa7b7 100644 --- a/pyaml/configuration/catalog.py +++ b/pyaml/configuration/catalog.py @@ -35,7 +35,33 @@ class CatalogConfigModel(BaseModel): name: str -class Catalog(metaclass=ABCMeta): +class CatalogResolver(metaclass=ABCMeta): + r""" + Bound resolver used by a control system to resolve catalog keys. + + A :class:`CatalogResolver` encapsulates the runtime resolution logic + for one attached control-system context. + """ + + @abstractmethod + def resolve(self, key: str) -> DeviceAccess: + r""" + Resolve a catalog key into a device access object. + + Parameters + ---------- + key : str + Catalog key to resolve. + + Returns + ------- + DeviceAccess + Resolved device access instance. + """ + raise NotImplementedError + + +class Catalog(CatalogResolver, metaclass=ABCMeta): r""" Base abstraction for resolving catalog keys into devices. @@ -69,33 +95,22 @@ def get_name(self) -> str: def attach_control_system(self, control_system: "ControlSystem"): r""" - Notify the catalog that a control system attached it. + Create a resolver bound to one control system. Parameters ---------- control_system : ControlSystem Control system using this catalog. - Notes - ----- - The default implementation is a no-op. Subclasses may override - this hook to capture attachment context. - """ - return None - - @abstractmethod - def resolve(self, key: str) -> DeviceAccess: - r""" - Resolve a catalog key into a device access object. - - Parameters - ---------- - key : str - Catalog key to resolve. - Returns ------- - DeviceAccess - Resolved device access instance. + CatalogResolver + Resolver instance bound to ``control_system``. + + Notes + ----- + The default implementation returns ``self``. Subclasses may + override this hook to return a dedicated per-control-system + resolver while keeping the catalog object itself shared. """ - raise NotImplementedError + return self diff --git a/pyaml/control/controlsystem.py b/pyaml/control/controlsystem.py index bc6368ef..1ef46e59 100644 --- a/pyaml/control/controlsystem.py +++ b/pyaml/control/controlsystem.py @@ -8,7 +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.catalog import Catalog, CatalogResolver from ..configuration.factory import Factory from ..control.abstract_impl import ( CSBPMArrayMapper, @@ -45,11 +45,11 @@ class ControlSystem(ElementHolder, metaclass=ABCMeta): def __init__(self): ElementHolder.__init__(self) self._catalog: Catalog | None = None + self._catalog_resolver: CatalogResolver | None = None def set_catalog(self, catalog: Catalog | None): self._catalog = catalog - if catalog is not None: - catalog.attach_control_system(self) + self._catalog_resolver = catalog.attach_control_system(self) if catalog is not None else None def get_catalog(self) -> Catalog | None: return self._catalog @@ -88,9 +88,9 @@ def resolve_device(self, dev: DeviceAccessRef | None) -> DeviceAccess | None: if dev is None or isinstance(dev, DeviceAccess): return dev if isinstance(dev, str): - if self._catalog is None: + if self._catalog_resolver is None: raise PyAMLException(f"Control system '{self.name()}' has no catalog configured for key '{dev}'") - return self._catalog.resolve(dev) + return self._catalog_resolver.resolve(dev) raise PyAMLException(f"Unsupported device reference type: {type(dev).__name__}") def resolve_devices(self, devs: list[DeviceAccessRef | None]) -> list[DeviceAccess | None]: diff --git a/tests/test_catalogs.py b/tests/test_catalogs.py index 137e6a7a..1c1f371e 100644 --- a/tests/test_catalogs.py +++ b/tests/test_catalogs.py @@ -3,7 +3,58 @@ from pyaml import PyAMLConfigException, PyAMLException from pyaml.accelerator import Accelerator +from pyaml.configuration.catalog import Catalog, CatalogConfigModel, CatalogResolver from pyaml.configuration.static_catalog import StaticCatalog +from pyaml.control.deviceaccess import DeviceAccess + + +class FakeDeviceAccess(DeviceAccess): + def __init__(self, name: str, unit: str = ""): + self._name = name + self._unit = unit + + def name(self) -> str: + return self._name + + def measure_name(self) -> str: + return self._name + + def set(self, value): + return None + + def set_and_wait(self, value): + return None + + def get(self): + return None + + def readback(self): + return None + + def unit(self) -> str: + return self._unit + + def get_range(self) -> list[float]: + return [] + + def check_device_availability(self) -> bool: + return True + + +class DummyCatalogBinding(CatalogResolver): + def __init__(self, control_system_name: str): + self._control_system_name = control_system_name + + def resolve(self, key: str) -> DeviceAccess: + return FakeDeviceAccess(name=f"{self._control_system_name}:{key}", unit="") + + +class DummyContextCatalog(Catalog): + def attach_control_system(self, control_system): + return DummyCatalogBinding(control_system.name()) + + def resolve(self, key: str) -> DeviceAccess: + raise AssertionError("Shared catalog object must not resolve keys directly") @pytest.mark.parametrize( @@ -117,6 +168,38 @@ def record_attachment(self, control_system): assert attached == [("device-catalog", "live"), ("device-catalog", "ops")] +def test_shared_catalog_can_bind_different_resolvers_per_control_system(): + catalog = DummyContextCatalog(CatalogConfigModel(name="contextual")) + + class DummyControlSystem: + def __init__(self, name: str): + self._name = name + self._catalog = None + self._catalog_resolver = None + + def name(self) -> str: + return self._name + + def set_catalog(self, bound_catalog: Catalog | None): + self._catalog = bound_catalog + self._catalog_resolver = bound_catalog.attach_control_system(self) if bound_catalog is not None else None + + def get_catalog(self): + return self._catalog + + def resolve(self, key: str) -> DeviceAccess: + return self._catalog_resolver.resolve(key) + + live = DummyControlSystem("live") + ops = DummyControlSystem("ops") + live.set_catalog(catalog) + ops.set_catalog(catalog) + + assert live.get_catalog() is ops.get_catalog() is catalog + assert live.resolve("BPM/X").name() == "live:BPM/X" + assert ops.resolve("BPM/X").name() == "ops:BPM/X" + + @pytest.mark.parametrize( "install_test_package", [{"name": "tango-pyaml", "path": "tests/dummy_cs/tango-pyaml"}], From baecc5408ae90fe0832201545dfa8eb346bf768a Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Mon, 20 Apr 2026 15:01:48 +0200 Subject: [PATCH 06/19] Refactor static catalogs into typed entries --- pyaml/apidoc/gen_api.py | 1 + pyaml/configuration/__init__.py | 2 + pyaml/configuration/factory.py | 104 +++++++++++------ pyaml/configuration/fileloader.py | 7 -- pyaml/configuration/manager.py | 6 +- pyaml/configuration/static_catalog.py | 47 ++++---- pyaml/configuration/static_catalog_entry.py | 60 ++++++++++ pyaml/configuration/unbound_element.py | 37 ++++++ tests/config/bad_catalog_duplicate_key.yaml | 22 ++-- tests/config/catalog_named.yaml | 122 ++++++++++++-------- tests/test_catalogs.py | 80 ++++++++----- tests/test_configuration_manager.py | 4 +- 12 files changed, 334 insertions(+), 158 deletions(-) create mode 100644 pyaml/configuration/static_catalog_entry.py create mode 100644 pyaml/configuration/unbound_element.py diff --git a/pyaml/apidoc/gen_api.py b/pyaml/apidoc/gen_api.py index 6635648a..0479eb51 100644 --- a/pyaml/apidoc/gen_api.py +++ b/pyaml/apidoc/gen_api.py @@ -42,6 +42,7 @@ "pyaml.configuration.manager", "pyaml.configuration.matrix", "pyaml.configuration.static_catalog", + "pyaml.configuration.static_catalog_entry", "pyaml.control.abstract_impl", "pyaml.control.controlsystem", "pyaml.control.deviceaccess", diff --git a/pyaml/configuration/__init__.py b/pyaml/configuration/__init__.py index 089c3d0e..44434487 100644 --- a/pyaml/configuration/__init__.py +++ b/pyaml/configuration/__init__.py @@ -7,6 +7,7 @@ from .fileloader import get_root_folder, set_root_folder from .manager import ConfigurationManager, UnsupportedConfigurationRootError from .static_catalog import StaticCatalog +from .static_catalog_entry import StaticCatalogEntry __all__ = [ "ConfigurationManager", @@ -15,6 +16,7 @@ "CatalogConfigModel", "CatalogResolver", "StaticCatalog", + "StaticCatalogEntry", "Factory", "get_root_folder", "set_root_folder", diff --git a/pyaml/configuration/factory.py b/pyaml/configuration/factory.py index f5aa73a9..9246775e 100644 --- a/pyaml/configuration/factory.py +++ b/pyaml/configuration/factory.py @@ -7,6 +7,7 @@ from ..common.element import Element from ..common.exception import PyAMLConfigException +from .unbound_element import UnboundElement class BuildStrategy: @@ -68,6 +69,7 @@ def handle_validation_error(self, e, type_str: str, location_str: str, field_loc def build_object(self, d: dict, ignore_external: bool = False): """Build an object from the dict""" + location = d.pop("__location__", None) field_locations = d.pop("__fieldlocations__", None) location_str = "" @@ -79,15 +81,19 @@ def build_object(self, d: dict, ignore_external: bool = False): raise PyAMLConfigException(f"Unexpected object {str(d)} {location_str}") if "type" not in d: raise PyAMLConfigException(f"No type specified for {str(type(d))}:{str(d)} {location_str}") - type_str = d.pop("type") + module_str = d.pop("type") + class_str = d.pop("class", None) + validation_class_str = d.pop("validation_class", "ConfigModel") + + # Import the module try: - module = importlib.import_module(type_str) + module = importlib.import_module(module_str) except ModuleNotFoundError as ex: if not ignore_external: # Discard module not found stack trace raise PyAMLConfigException( - "Module referenced in type cannot be found:" + f"'{type_str}' {location_str}" + "Module referenced in type cannot be found:" + f"'{module_str}' {location_str}" ) from None else: return None @@ -102,37 +108,76 @@ def build_object(self, d: dict, ignore_external: bool = False): except Exception as e: raise PyAMLConfigException(f"Custom strategy failed {location_str}") from e - # Default loading strategy - # Get the config object - config_cls = getattr(module, "ConfigModel", None) - if config_cls is None: - raise PyAMLConfigException(f"ConfigModel class '{type_str}.ConfigModel' not found {location_str}") + # Get the object class name + if class_str is None: + class_str = getattr(module, "PYAMLCLASS", None) + if class_str is None: + raise PyAMLConfigException( + f"PYAMLCLASS definition not found or class not specified in '{module_str}' {location_str}" + ) - # Get the class name - cls_name = getattr(module, "PYAMLCLASS", None) - if cls_name is None: - raise PyAMLConfigException(f"PYAMLCLASS definition not found in '{type_str}' {location_str}") + control_modes = d.pop("control_modes", None) + + if control_modes is None: + # Immediate contruction + + # Get the validation class + config_cls = getattr(module, validation_class_str, None) + if config_cls is None: + raise PyAMLConfigException(f"No validation class for '{module_str}.{class_str}' {location_str}") - try: # Validate the model - cfg = config_cls.model_validate(d) - except ValidationError as e: - self.handle_validation_error(e, type_str, location_str, field_locations) + try: + cfg = config_cls.model_validate(d) + except ValidationError as e: + self.handle_validation_error(e, module_str, location_str, field_locations) + + elem_cls = getattr(module, class_str, None) + if elem_cls is None: + raise PyAMLConfigException(f"Unknown element class '{module_str}.{class_str}' {location_str}") + + # Construct and return the object + try: + obj = elem_cls(cfg) + self.register_element(obj) + except Exception as e: + raise PyAMLConfigException(f"{str(e)} when creating '{module_str}.{class_str}' {location_str}") from e - # Construct and return the object - elem_cls = getattr(module, cls_name, None) + else: + # Delayed construction + element_name = d.pop("name", None) + if element_name is None: + raise PyAMLConfigException( + f"Name not speficied for element class '{module_str}.{class_str}' {location_str}" + ) + obj = UnboundElement(element_name, class_str, module_str, control_modes, d) + + return obj + + def build_unbound(self, e: UnboundElement, holder) -> Element: + # Build unbound element (no validation for unbound element) + try: + module = importlib.import_module(e._module_name) + except ModuleNotFoundError as ex: + raise PyAMLConfigException("Module referenced in type cannot be found:" + f"'{e._module_name}'") from None + + elem_cls = getattr(module, e._class_name, None) if elem_cls is None: - raise PyAMLConfigException(f"Unknown element class '{type_str}.{cls_name}'") + raise PyAMLConfigException(f"Unknown element class '{e._module_name}.{e._class_name}'") try: - obj = elem_cls(cfg) - self.register_element(obj) - except Exception as e: - raise PyAMLConfigException(f"{str(e)} when creating '{type_str}.{cls_name}' {location_str}") from e + obj = elem_cls(e.get_name(), holder, **e._config) + except Exception as ex: + raise PyAMLConfigException(f"{str(ex)} when creating '{e._module_name}.{e._class_name}'") from ex + + if not isinstance(obj, Element): + raise PyAMLConfigException(f"'{e._module_name}.{e._class_name}' is not a sub class of Element") + + obj._peer = holder return obj - def depth_first_build(self, d, ignore_external: bool, _is_root: bool = True): + def depth_first_build(self, d, ignore_external: bool): """ Main factory function (Depth-first factory) @@ -147,7 +192,7 @@ def depth_first_build(self, d, ignore_external: bool, _is_root: bool = True): l = [] for _index, e in enumerate(d): if isinstance(e, dict) or isinstance(e, list): - obj = self.depth_first_build(e, ignore_external, _is_root=False) + obj = self.depth_first_build(e, ignore_external) l.append(obj) else: l.append(e) @@ -157,17 +202,10 @@ def depth_first_build(self, d, ignore_external: bool, _is_root: bool = True): for key, value in d.items(): if not key == "__fieldlocations__": if isinstance(value, dict) or isinstance(value, list): - obj = self.depth_first_build(value, ignore_external, _is_root=False) + obj = self.depth_first_build(value, ignore_external) # Replace the inner dict by the object itself d[key] = obj - if "type" not in d: - if _is_root: - raise PyAMLConfigException(f"No type specified for {str(type(d))}:{str(d)} ") - d.pop("__location__", None) - d.pop("__fieldlocations__", None) - return d - # We are now on leaf (no nested object), we can construct return self.build_object(d, ignore_external) diff --git a/pyaml/configuration/fileloader.py b/pyaml/configuration/fileloader.py index 206aadbe..d4a8e81e 100644 --- a/pyaml/configuration/fileloader.py +++ b/pyaml/configuration/fileloader.py @@ -167,13 +167,6 @@ def construct_mapping(self, node, deep=False): "found unhashable key", key_node.start_mark, ) - if key in mapping: - raise ConstructorError( - "while constructing a mapping", - node.start_mark, - f"found duplicate key ({key})", - key_node.start_mark, - ) value = self.construct_object(value_node, deep=deep) mapping[key] = value field_mapping[key] = ( diff --git a/pyaml/configuration/manager.py b/pyaml/configuration/manager.py index dfb26315..ea3ded1a 100644 --- a/pyaml/configuration/manager.py +++ b/pyaml/configuration/manager.py @@ -778,9 +778,9 @@ def _format_entry(self, category: str, entry: dict[str, Any]) -> str: details: list[str] = [] if category == "catalogs": - refs = entry.get("refs") - if isinstance(refs, dict): - details.append(f"refs={len(refs)}") + entries = entry.get("entries") + if isinstance(entries, list): + details.append(f"entries={len(entries)}") if category == "arrays": patterns = entry.get("elements") if isinstance(patterns, list): diff --git a/pyaml/configuration/static_catalog.py b/pyaml/configuration/static_catalog.py index 05bd406b..dc3ed257 100644 --- a/pyaml/configuration/static_catalog.py +++ b/pyaml/configuration/static_catalog.py @@ -4,10 +4,11 @@ Built-in mapping-based catalog implementation for PyAML. """ -from pydantic import ConfigDict, model_validator +from pydantic import ConfigDict from pyaml import PyAMLException from pyaml.configuration.catalog import Catalog, CatalogConfigModel +from pyaml.configuration.static_catalog_entry import StaticCatalogEntry from pyaml.control.deviceaccess import DeviceAccess PYAMLCLASS = "StaticCatalog" @@ -21,32 +22,18 @@ class ConfigModel(CatalogConfigModel): ---------- name : str Catalog identifier. - refs : dict[str, DeviceAccess] - Explicit mapping from catalog keys to device access objects. + entries : list[StaticCatalogEntry] + Explicit list of typed entries mapping catalog keys to device access objects. """ model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") - refs: dict[str, DeviceAccess] - - @model_validator(mode="after") - def validate_refs(self) -> "ConfigModel": - r""" - Validate that the catalog contains at least one mapping entry. - - Returns - ------- - ConfigModel - The validated configuration model. - """ - if len(self.refs) == 0: - raise ValueError("StaticCatalog.refs must contain at least one entry") - return self + entries: list[StaticCatalogEntry] class StaticCatalog(Catalog): r""" - Catalog implementation backed by an explicit ``key -> DeviceAccess`` mapping. + Catalog implementation backed by explicit typed entries. :class:`StaticCatalog` is the standard catalog implementation provided by base PyAML. It resolves configuration keys directly @@ -60,16 +47,26 @@ class StaticCatalog(Catalog): catalogs: - type: pyaml.configuration.static_catalog name: bpm-common - refs: - BPM_C01-01/x: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-01/XPosSA - unit: mm + entries: + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-01/x + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-01/XPosSA + unit: mm """ def __init__(self, cfg: ConfigModel): super().__init__(cfg) - self._refs = cfg.refs + if len(cfg.entries) == 0: + raise PyAMLException("StaticCatalog.entries must contain at least one entry") + + self._refs: dict[str, DeviceAccess] = {} + for entry in cfg.entries: + key = entry.get_key() + if key in self._refs: + raise PyAMLException(f"StaticCatalog.entries contains duplicate key '{key}'") + self._refs[key] = entry.get_device() def resolve(self, key: str) -> DeviceAccess: r""" diff --git a/pyaml/configuration/static_catalog_entry.py b/pyaml/configuration/static_catalog_entry.py new file mode 100644 index 00000000..32fbef39 --- /dev/null +++ b/pyaml/configuration/static_catalog_entry.py @@ -0,0 +1,60 @@ +""" +static_catalog_entry.py + +Typed catalog entry used by :mod:`pyaml.configuration.static_catalog`. +""" + +from pydantic import BaseModel, ConfigDict + +from pyaml.control.deviceaccess import DeviceAccess + +PYAMLCLASS = "StaticCatalogEntry" + + +class ConfigModel(BaseModel): + r""" + Configuration model for :class:`StaticCatalogEntry`. + + Parameters + ---------- + key : str + Catalog key resolved by the static catalog. + device : DeviceAccess + Device access associated with ``key``. + """ + + model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") + + key: str + device: DeviceAccess + + +class StaticCatalogEntry: + r""" + Typed entry for :class:`~pyaml.configuration.static_catalog.StaticCatalog`. + """ + + def __init__(self, cfg: ConfigModel): + self._cfg = cfg + + def get_key(self) -> str: + r""" + Return the catalog key. + + Returns + ------- + str + Entry key. + """ + return self._cfg.key + + def get_device(self) -> DeviceAccess: + r""" + Return the device associated with this entry. + + Returns + ------- + DeviceAccess + Stored device access. + """ + return self._cfg.device diff --git a/pyaml/configuration/unbound_element.py b/pyaml/configuration/unbound_element.py new file mode 100644 index 00000000..8eaedc49 --- /dev/null +++ b/pyaml/configuration/unbound_element.py @@ -0,0 +1,37 @@ +from ..common.element import Element + + +class UnboundElement(Element): + """ + Class that holds a configuration for an element created on the fly when ElementHolder is filled + """ + + def __init__(self, name: str, class_name: str, module_name: str, modes: list[str], config: dict): + """ + Construct an External element + Parameters + ---------- + name : str + Element name + class_name : str + Element class + module_name : str + Element module + control_modes: list[str] + List of control modes to add the element to + config: dict + Element configuration + """ + super().__init__(name) + self._class_name = class_name + self._module_name = module_name + self._control_modes = modes + self._config = config + + def __repr__(self): + return "%s(name='%s', class_name='%s', module_name=%s)" % ( + self.__class__.__name__, + self.get_name(), + self._class_name, + self._module_name, + ) diff --git a/tests/config/bad_catalog_duplicate_key.yaml b/tests/config/bad_catalog_duplicate_key.yaml index 0234fcb0..60c6d13f 100644 --- a/tests/config/bad_catalog_duplicate_key.yaml +++ b/tests/config/bad_catalog_duplicate_key.yaml @@ -7,12 +7,16 @@ devices: [] catalogs: - type: pyaml.configuration.static_catalog name: duplicate-refs - refs: - duplicated/key: - type: tango.pyaml.attribute - attribute: sr/test/one - unit: A - duplicated/key: - type: tango.pyaml.attribute - attribute: sr/test/two - unit: A + entries: + - type: pyaml.configuration.static_catalog_entry + key: duplicated/key + device: + type: tango.pyaml.attribute + attribute: sr/test/one + unit: A + - type: pyaml.configuration.static_catalog_entry + key: duplicated/key + device: + type: tango.pyaml.attribute + attribute: sr/test/two + unit: A diff --git a/tests/config/catalog_named.yaml b/tests/config/catalog_named.yaml index 22e094fc..c92ff797 100644 --- a/tests/config/catalog_named.yaml +++ b/tests/config/catalog_named.yaml @@ -16,55 +16,79 @@ data_folder: /data/store catalogs: - type: pyaml.configuration.static_catalog name: device-catalog - refs: - BPM_C01-01/x: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-01/SA_HPosition - unit: mm - BPM_C01-01/y: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-01/SA_VPosition - unit: mm - BPM_C01-01/x_offset: - type: tango.pyaml.attribute - attribute: srdiag/bpm/c01-01/HOffset - unit: mm - BPM_C01-01/y_offset: - type: tango.pyaml.attribute - attribute: srdiag/bpm/c01-01/VOffset - unit: mm - BPM_C01-01/tilt: - type: tango.pyaml.attribute - attribute: srdiag/bpm/c01-01/Tilt_Angle - unit: rad - tune/h: - type: tango.pyaml.attribute_read_only - attribute: srdiag/beam-tune/main/Qh - unit: "1" - tune/v: - type: tango.pyaml.attribute_read_only - attribute: srdiag/beam-tune/main/Qv - unit: "1" - rf/masterclock: - type: tango.pyaml.attribute - attribute: sy/ms/1/Frequency - unit: Hz - QF1A-C01/current: - type: tango.pyaml.attribute - attribute: sr/ps-qf1/c01-a/current - unit: A - SH1A-C01/ps1: - type: tango.pyaml.attribute - attribute: srmag/ps-corr-sh1/c01-a-ch1/current - unit: A - SH1A-C01/ps2: - type: tango.pyaml.attribute - attribute: srmag/ps-corr-sh1/c01-a-ch2/current - unit: A - SH1A-C01/ps3: - type: tango.pyaml.attribute - attribute: srmag/ps-corr-sh1/c01-a-ch3/current - unit: A + entries: + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-01/x + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-01/SA_HPosition + unit: mm + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-01/y + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-01/SA_VPosition + unit: mm + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-01/x_offset + device: + type: tango.pyaml.attribute + attribute: srdiag/bpm/c01-01/HOffset + unit: mm + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-01/y_offset + device: + type: tango.pyaml.attribute + attribute: srdiag/bpm/c01-01/VOffset + unit: mm + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-01/tilt + device: + type: tango.pyaml.attribute + attribute: srdiag/bpm/c01-01/Tilt_Angle + unit: rad + - type: pyaml.configuration.static_catalog_entry + key: tune/h + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/beam-tune/main/Qh + unit: "1" + - type: pyaml.configuration.static_catalog_entry + key: tune/v + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/beam-tune/main/Qv + unit: "1" + - type: pyaml.configuration.static_catalog_entry + key: rf/masterclock + device: + type: tango.pyaml.attribute + attribute: sy/ms/1/Frequency + unit: Hz + - type: pyaml.configuration.static_catalog_entry + key: QF1A-C01/current + device: + type: tango.pyaml.attribute + attribute: sr/ps-qf1/c01-a/current + unit: A + - type: pyaml.configuration.static_catalog_entry + key: SH1A-C01/ps1 + device: + type: tango.pyaml.attribute + attribute: srmag/ps-corr-sh1/c01-a-ch1/current + unit: A + - type: pyaml.configuration.static_catalog_entry + key: SH1A-C01/ps2 + device: + type: tango.pyaml.attribute + attribute: srmag/ps-corr-sh1/c01-a-ch2/current + unit: A + - type: pyaml.configuration.static_catalog_entry + key: SH1A-C01/ps3 + device: + type: tango.pyaml.attribute + attribute: srmag/ps-corr-sh1/c01-a-ch3/current + unit: A devices: - type: pyaml.bpm.bpm name: BPM_C01-01 diff --git a/tests/test_catalogs.py b/tests/test_catalogs.py index 1c1f371e..6c4c9a68 100644 --- a/tests/test_catalogs.py +++ b/tests/test_catalogs.py @@ -113,18 +113,26 @@ def test_inline_catalog_is_supported(install_test_package): "catalog": { "type": "pyaml.configuration.static_catalog", "name": "inline-live", - "refs": { - "BPM_C02-01/x": { - "type": "tango.pyaml.attribute_read_only", - "attribute": "srdiag/bpm/c02-01/SA_HPosition", - "unit": "mm", + "entries": [ + { + "type": "pyaml.configuration.static_catalog_entry", + "key": "BPM_C02-01/x", + "device": { + "type": "tango.pyaml.attribute_read_only", + "attribute": "srdiag/bpm/c02-01/SA_HPosition", + "unit": "mm", + }, }, - "BPM_C02-01/y": { - "type": "tango.pyaml.attribute_read_only", - "attribute": "srdiag/bpm/c02-01/SA_VPosition", - "unit": "mm", + { + "type": "pyaml.configuration.static_catalog_entry", + "key": "BPM_C02-01/y", + "device": { + "type": "tango.pyaml.attribute_read_only", + "attribute": "srdiag/bpm/c02-01/SA_VPosition", + "unit": "mm", + }, }, - }, + ], }, } ], @@ -248,13 +256,17 @@ def test_unresolved_catalog_key_raises_runtime_error(install_test_package): { "type": "pyaml.configuration.static_catalog", "name": "device-catalog", - "refs": { - "BPM_C03-01/x": { - "type": "tango.pyaml.attribute_read_only", - "attribute": "srdiag/bpm/c03-01/SA_HPosition", - "unit": "mm", + "entries": [ + { + "type": "pyaml.configuration.static_catalog_entry", + "key": "BPM_C03-01/x", + "device": { + "type": "tango.pyaml.attribute_read_only", + "attribute": "srdiag/bpm/c03-01/SA_HPosition", + "unit": "mm", + }, } - }, + ], } ], "controls": [ @@ -299,30 +311,38 @@ def test_duplicate_top_level_catalog_names_raise_config_error(install_test_packa { "type": "pyaml.configuration.static_catalog", "name": "duplicate", - "refs": { - "QF1/current": { - "type": "tango.pyaml.attribute", - "attribute": "sr/test/one", - "unit": "A", + "entries": [ + { + "type": "pyaml.configuration.static_catalog_entry", + "key": "QF1/current", + "device": { + "type": "tango.pyaml.attribute", + "attribute": "sr/test/one", + "unit": "A", + }, } - }, + ], }, { "type": "pyaml.configuration.static_catalog", "name": "duplicate", - "refs": { - "QF2/current": { - "type": "tango.pyaml.attribute", - "attribute": "sr/test/two", - "unit": "A", + "entries": [ + { + "type": "pyaml.configuration.static_catalog_entry", + "key": "QF2/current", + "device": { + "type": "tango.pyaml.attribute", + "attribute": "sr/test/two", + "unit": "A", + }, } - }, + ], }, ], }, ) -def test_duplicate_static_catalog_keys_raise_yaml_error(): - with pytest.raises(PyAMLException, match="duplicate key"): +def test_duplicate_static_catalog_entry_keys_raise_config_error(): + with pytest.raises(PyAMLConfigException, match="duplicate key 'duplicated/key'"): Accelerator.load("tests/config/bad_catalog_duplicate_key.yaml") diff --git a/tests/test_configuration_manager.py b/tests/test_configuration_manager.py index 0ea86a1e..553f5f12 100644 --- a/tests/test_configuration_manager.py +++ b/tests/test_configuration_manager.py @@ -201,7 +201,7 @@ def test_configuration_manager_tracks_catalogs_as_named_category(config_root_pat assert manager.keys("catalogs") == ["device-catalog"] assert manager.has("catalogs", "device-catalog") assert manager.get("catalogs", "device-catalog")["type"] == "pyaml.configuration.static_catalog" - assert "BPM_C01-01/x" in manager.get("catalogs", "device-catalog")["refs"] + assert manager.get("catalogs", "device-catalog")["entries"][0]["key"] == "BPM_C01-01/x" assert manager.catalogs == ["device-catalog"] @@ -297,7 +297,7 @@ def test_configuration_manager_repr_includes_catalogs(config_root_path): assert str(manager) == output assert "Catalogs:" in output - assert "device-catalog (pyaml.configuration.static_catalog) refs=14 source=catalog_named.yaml" in output + assert "device-catalog (pyaml.configuration.static_catalog) entries=12 source=catalog_named.yaml" in output def test_configuration_manager_yellow_pages_like_shortcuts( From 7f7bf3a15f8df3fe5736aa54af2304e9d8703084 Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Mon, 20 Apr 2026 16:10:12 +0200 Subject: [PATCH 07/19] Limit catalog-backed device references to BPM models --- pyaml/control/controlsystem.py | 18 +++---- pyaml/diagnostics/tune_monitor.py | 6 +-- pyaml/magnet/identity_cfm_model.py | 8 +-- pyaml/magnet/identity_model.py | 8 +-- pyaml/magnet/linear_cfm_model.py | 6 +-- pyaml/magnet/linear_model.py | 6 +-- pyaml/magnet/linear_serialized_model.py | 6 +-- pyaml/magnet/model.py | 4 +- pyaml/magnet/serialized_magnet.py | 4 +- pyaml/magnet/spline_model.py | 6 +-- pyaml/rf/rf_plant.py | 4 +- pyaml/rf/rf_transmitter.py | 6 +-- tests/config/catalog_named.yaml | 70 ------------------------- tests/test_catalogs.py | 15 ------ tests/test_configuration_manager.py | 2 +- 15 files changed, 42 insertions(+), 127 deletions(-) diff --git a/pyaml/control/controlsystem.py b/pyaml/control/controlsystem.py index 97b1162b..00e9c7d6 100644 --- a/pyaml/control/controlsystem.py +++ b/pyaml/control/controlsystem.py @@ -113,7 +113,7 @@ def create_scalar_aggregator(self) -> ScalarAggregator: def create_magnet_strength_aggregator(self, magnets: list[Magnet]) -> ScalarAggregator: agg = CSStrengthScalarAggregator(self.create_scalar_aggregator()) for m in magnets: - devs = self.attach(self.resolve_devices(m.model.get_devices())) + devs = self.attach(m.model.get_devices()) agg.add_magnet(m, devs) return agg @@ -126,7 +126,7 @@ def create_magnet_hardware_aggregator(self, magnets: list[Magnet]) -> ScalarAggr if not m.model.has_hardware(): return None psIndex = m.hardware.index() if isinstance(m.hardware, RWMapper) else 0 - agg.add_devices(self.attach([self.resolve_device(m.model.get_devices()[psIndex])])[0]) + agg.add_devices(self.attach([m.model.get_devices()[psIndex]])[0]) return agg def create_bpm_aggregators(self, bpms: list[BPM]) -> list[ScalarAggregator]: @@ -203,7 +203,7 @@ def fill_device(self, elements: list[Element]): """ for e in elements: if isinstance(e, Magnet): - dev = self.attach(self.resolve_devices(e.model.get_devices()))[0] + dev = self.attach(e.model.get_devices())[0] current = RWHardwareScalar(e.model, dev) if e.model.has_hardware() else None strength = RWStrengthScalar(e.model, dev) if e.model.has_physics() else None # Create a unique ref for this control system @@ -211,7 +211,7 @@ def fill_device(self, elements: list[Element]): self.add_magnet(m) elif isinstance(e, CombinedFunctionMagnet): - devs = self.attach(self.resolve_devices(e.model.get_devices())) + devs = self.attach(e.model.get_devices()) currents = RWHardwareArray(e.model, devs) strengths = RWStrengthArray(e.model, devs) # Create unique refs the cfm and @@ -222,7 +222,7 @@ def fill_device(self, elements: list[Element]): self.add_magnet(m) elif isinstance(e, SerializedMagnets): - devs = self.attach(self.resolve_devices(e.model.get_devices())) + devs = self.attach(e.model.get_devices()) currents = [] strengths = [] # Create unique refs the series and each of its function for this @@ -258,22 +258,22 @@ def fill_device(self, elements: list[Element]): attachedTrans: list[RFTransmitter] = [] if e._cfg.transmitters: for t in e._cfg.transmitters: - vDev = self.attach([self.resolve_device(t._cfg.voltage)])[0] - pDev = self.attach([self.resolve_device(t._cfg.phase)])[0] + vDev = self.attach([t._cfg.voltage])[0] + pDev = self.attach([t._cfg.phase])[0] voltage = RWRFVoltageScalar(t, vDev) phase = RWRFPhaseScalar(t, pDev) nt = t.attach(self, voltage, phase) self.add_rf_transnmitter(nt) attachedTrans.append(nt) - fDev = self.attach([self.resolve_device(e._cfg.masterclock)])[0] + fDev = self.attach([e._cfg.masterclock])[0] frequency = RWRFFrequencyScalar(e, fDev) voltage = RWTotalVoltage(attachedTrans) if e._cfg.transmitters else None ne = e.attach(self, frequency, voltage) self.add_rf_plant(ne) elif isinstance(e, BetatronTuneMonitor): - tuneDevs = self.attach(self.resolve_devices([e._cfg.tune_h, e._cfg.tune_v])) + tuneDevs = self.attach([e._cfg.tune_h, e._cfg.tune_v]) betatron_tune = RBetatronTuneArray(e, tuneDevs) e = e.attach(self, betatron_tune) self.add_betatron_tune_monitor(e) diff --git a/pyaml/diagnostics/tune_monitor.py b/pyaml/diagnostics/tune_monitor.py index ae2b3fb3..1302ea07 100644 --- a/pyaml/diagnostics/tune_monitor.py +++ b/pyaml/diagnostics/tune_monitor.py @@ -1,6 +1,6 @@ from ..common.abstract import ReadFloatArray from ..common.element import Element, ElementConfigModel -from ..control.deviceaccess import DeviceAccessRef +from ..control.deviceaccess import DeviceAccess from .atune_monitor import ABetatronTuneMonitor try: @@ -27,8 +27,8 @@ class ConfigModel(ElementConfigModel): model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") - tune_h: DeviceAccessRef | None - tune_v: DeviceAccessRef | None + tune_h: DeviceAccess | None + tune_v: DeviceAccess | None rf_plant_name: str | None = None diff --git a/pyaml/magnet/identity_cfm_model.py b/pyaml/magnet/identity_cfm_model.py index 0719bb89..0c1065a2 100644 --- a/pyaml/magnet/identity_cfm_model.py +++ b/pyaml/magnet/identity_cfm_model.py @@ -3,7 +3,7 @@ from .. import PyAMLException from ..common.element import __pyaml_repr__ -from ..control.deviceaccess import DeviceAccessRef +from ..control.deviceaccess import DeviceAccess from .model import MagnetModel # Define the main class name for this module @@ -29,8 +29,8 @@ class ConfigModel(BaseModel): model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") multipoles: list[str] - powerconverters: list[DeviceAccessRef | None] | None = None - physics: list[DeviceAccessRef | None] | None = None + powerconverters: list[DeviceAccess | None] | None = None + physics: list[DeviceAccess | None] | None = None units: list[str] @@ -81,7 +81,7 @@ def get_strength_units(self) -> list[str]: def get_hardware_units(self) -> list[str]: return self._cfg.units - def get_devices(self) -> list[DeviceAccessRef | None]: + def get_devices(self) -> list[DeviceAccess | None]: return self.__devices def set_magnet_rigidity(self, brho: np.double): diff --git a/pyaml/magnet/identity_model.py b/pyaml/magnet/identity_model.py index d9cf3700..9692de6d 100644 --- a/pyaml/magnet/identity_model.py +++ b/pyaml/magnet/identity_model.py @@ -3,7 +3,7 @@ from .. import PyAMLException from ..common.element import __pyaml_repr__ -from ..control.deviceaccess import DeviceAccessRef +from ..control.deviceaccess import DeviceAccess from .model import MagnetModel # Define the main class name for this module @@ -26,8 +26,8 @@ class ConfigModel(BaseModel): model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") - powerconverter: DeviceAccessRef | None = None - physics: DeviceAccessRef | None = None + powerconverter: DeviceAccess | None = None + physics: DeviceAccess | None = None unit: str @@ -62,7 +62,7 @@ def get_strength_units(self) -> list[str]: def get_hardware_units(self) -> list[str]: return [self.__unit] - def get_devices(self) -> list[DeviceAccessRef]: + def get_devices(self) -> list[DeviceAccess]: return [self.__device] def set_magnet_rigidity(self, brho: np.double): diff --git a/pyaml/magnet/linear_cfm_model.py b/pyaml/magnet/linear_cfm_model.py index 9cda4be3..78fbb5c6 100644 --- a/pyaml/magnet/linear_cfm_model.py +++ b/pyaml/magnet/linear_cfm_model.py @@ -5,7 +5,7 @@ from ..common.exception import PyAMLException from ..configuration.curve import Curve from ..configuration.matrix import Matrix -from ..control.deviceaccess import DeviceAccessRef, device_unit +from ..control.deviceaccess import DeviceAccess, device_unit from .model import MagnetModel # Define the main class name for this module @@ -52,7 +52,7 @@ class ConfigModel(BaseModel): calibration_offsets: list[float] = None pseudo_factors: list[float] = None pseudo_offsets: list[float] = None - powerconverters: list[DeviceAccessRef | None] + powerconverters: list[DeviceAccess | None] matrix: Matrix = None units: list[str] @@ -151,7 +151,7 @@ def get_strength_units(self) -> list[str]: def get_hardware_units(self) -> list[str]: return np.array([device_unit(p) for p in self._cfg.powerconverters]) - def get_devices(self) -> list[DeviceAccessRef]: + def get_devices(self) -> list[DeviceAccess]: return self._cfg.powerconverters def set_magnet_rigidity(self, brho: np.double): diff --git a/pyaml/magnet/linear_model.py b/pyaml/magnet/linear_model.py index b530faa8..e747ee79 100644 --- a/pyaml/magnet/linear_model.py +++ b/pyaml/magnet/linear_model.py @@ -3,7 +3,7 @@ from ..common.element import __pyaml_repr__ from ..configuration.curve import Curve -from ..control.deviceaccess import DeviceAccessRef, device_unit +from ..control.deviceaccess import DeviceAccess, device_unit from .model import MagnetModel # Define the main class name for this module @@ -35,7 +35,7 @@ class ConfigModel(BaseModel): model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") curve: Curve | None = None - powerconverter: DeviceAccessRef | None + powerconverter: DeviceAccess | None calibration_factor: float = 1.0 calibration_offset: float = 0.0 crosstalk: float = 1.0 @@ -84,7 +84,7 @@ def get_strength_units(self) -> list[str]: def get_hardware_units(self) -> list[str]: return [self.__hardware_unit] if self.__hardware_unit is not None else [""] - def get_devices(self) -> list[DeviceAccessRef]: + def get_devices(self) -> list[DeviceAccess]: return [self.__ps] def set_magnet_rigidity(self, brho: np.double): diff --git a/pyaml/magnet/linear_serialized_model.py b/pyaml/magnet/linear_serialized_model.py index 17245470..b65e14c7 100644 --- a/pyaml/magnet/linear_serialized_model.py +++ b/pyaml/magnet/linear_serialized_model.py @@ -7,7 +7,7 @@ from ..configuration.inline_curve import ConfigModel as InlineCurveModel from ..configuration.inline_curve import InlineCurve from ..configuration.matrix import Matrix -from ..control.deviceaccess import DeviceAccessRef, device_unit +from ..control.deviceaccess import DeviceAccess, device_unit from .linear_model import ConfigModel as LinearConfigModel from .linear_model import LinearMagnetModel from .model import MagnetModel @@ -45,7 +45,7 @@ class ConfigModel(BaseModel): calibration_factors: float | list[float] = None calibration_offsets: float | list[float] = None crosstalk: float | list[float] = 1.0 - powerconverter: DeviceAccessRef + powerconverter: DeviceAccess unit: str @@ -167,7 +167,7 @@ def get_strength_units(self) -> list[str]: def get_hardware_units(self) -> list[str]: return [device_unit(self._cfg.powerconverter)] * self.__nbMagnets - def get_devices(self) -> list[DeviceAccessRef]: + def get_devices(self) -> list[DeviceAccess]: return [self._cfg.powerconverter] * self.__nbMagnets def set_magnet_rigidity(self, brho: np.double): diff --git a/pyaml/magnet/model.py b/pyaml/magnet/model.py index 55231284..4b48c546 100644 --- a/pyaml/magnet/model.py +++ b/pyaml/magnet/model.py @@ -3,7 +3,7 @@ import numpy as np import numpy.typing as npt -from ..control.deviceaccess import DeviceAccessRef +from ..control.deviceaccess import DeviceAccess class MagnetModel(metaclass=ABCMeta): @@ -75,7 +75,7 @@ def get_hardware_units(self) -> list[str]: pass @abstractmethod - def get_devices(self) -> list[DeviceAccessRef | None]: + def get_devices(self) -> list[DeviceAccess | None]: """ Get device handles diff --git a/pyaml/magnet/serialized_magnet.py b/pyaml/magnet/serialized_magnet.py index 570783bb..35a457e5 100644 --- a/pyaml/magnet/serialized_magnet.py +++ b/pyaml/magnet/serialized_magnet.py @@ -5,7 +5,7 @@ from ..common import abstract from ..common.element import Element, ElementConfigModel, __pyaml_repr__ from ..configuration import Factory -from ..control.deviceaccess import DeviceAccessRef +from ..control.deviceaccess import DeviceAccess from .function_mapping import function_map from .magnet import Magnet, MagnetConfigModel from .model import MagnetModel @@ -170,5 +170,5 @@ def set_energy(self, energy: float): def __repr__(self): return __pyaml_repr__(self) - def get_devices(self) -> list[DeviceAccessRef]: + def get_devices(self) -> list[DeviceAccess | None]: return self.model.get_devices() diff --git a/pyaml/magnet/spline_model.py b/pyaml/magnet/spline_model.py index dbc6c390..03b5deb3 100644 --- a/pyaml/magnet/spline_model.py +++ b/pyaml/magnet/spline_model.py @@ -4,7 +4,7 @@ from ..common.element import __pyaml_repr__ from ..configuration.curve import Curve -from ..control.deviceaccess import DeviceAccessRef, device_unit +from ..control.deviceaccess import DeviceAccess, device_unit from .model import MagnetModel # Define the main class name for this module @@ -37,7 +37,7 @@ class ConfigModel(BaseModel): model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") curve: Curve - powerconverter: DeviceAccessRef | None + powerconverter: DeviceAccess | None calibration_factor: float = 1.0 calibration_offset: float = 0.0 crosstalk: float = 1.0 @@ -77,7 +77,7 @@ def get_strength_units(self) -> list[str]: def get_hardware_units(self) -> list[str]: return [self.__hardware_unit] if self.__hardware_unit is not None else [""] - def get_devices(self) -> list[DeviceAccessRef]: + def get_devices(self) -> list[DeviceAccess]: return [self.__ps] def set_magnet_rigidity(self, brho: np.double): diff --git a/pyaml/rf/rf_plant.py b/pyaml/rf/rf_plant.py index 8d6f1c03..9747324d 100644 --- a/pyaml/rf/rf_plant.py +++ b/pyaml/rf/rf_plant.py @@ -9,7 +9,7 @@ from .. import PyAMLException from ..common import abstract from ..common.element import Element, ElementConfigModel -from ..control.deviceaccess import DeviceAccessRef +from ..control.deviceaccess import DeviceAccess from .rf_transmitter import RFTransmitter # Define the main class name for this module @@ -17,7 +17,7 @@ class ConfigModel(ElementConfigModel): - masterclock: DeviceAccessRef | None = None + masterclock: DeviceAccess | None = None """Device to apply main RF frequency""" transmitters: list[RFTransmitter] | None = None """List of RF trasnmitters""" diff --git a/pyaml/rf/rf_transmitter.py b/pyaml/rf/rf_transmitter.py index c78937fc..9014d72b 100644 --- a/pyaml/rf/rf_transmitter.py +++ b/pyaml/rf/rf_transmitter.py @@ -9,7 +9,7 @@ from .. import PyAMLException from ..common import abstract from ..common.element import Element, ElementConfigModel -from ..control.deviceaccess import DeviceAccessRef +from ..control.deviceaccess import DeviceAccess # Define the main class name for this module PYAMLCLASS = "RFTransmitter" @@ -36,8 +36,8 @@ class ConfigModel(ElementConfigModel): model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") - voltage: DeviceAccessRef | None = None - phase: DeviceAccessRef | None = None + voltage: DeviceAccess | None = None + phase: DeviceAccess | None = None cavities: list[str] harmonic: float = 1.0 distribution: float = 1.0 diff --git a/tests/config/catalog_named.yaml b/tests/config/catalog_named.yaml index c92ff797..2ed08ec9 100644 --- a/tests/config/catalog_named.yaml +++ b/tests/config/catalog_named.yaml @@ -47,48 +47,6 @@ catalogs: type: tango.pyaml.attribute attribute: srdiag/bpm/c01-01/Tilt_Angle unit: rad - - type: pyaml.configuration.static_catalog_entry - key: tune/h - device: - type: tango.pyaml.attribute_read_only - attribute: srdiag/beam-tune/main/Qh - unit: "1" - - type: pyaml.configuration.static_catalog_entry - key: tune/v - device: - type: tango.pyaml.attribute_read_only - attribute: srdiag/beam-tune/main/Qv - unit: "1" - - type: pyaml.configuration.static_catalog_entry - key: rf/masterclock - device: - type: tango.pyaml.attribute - attribute: sy/ms/1/Frequency - unit: Hz - - type: pyaml.configuration.static_catalog_entry - key: QF1A-C01/current - device: - type: tango.pyaml.attribute - attribute: sr/ps-qf1/c01-a/current - unit: A - - type: pyaml.configuration.static_catalog_entry - key: SH1A-C01/ps1 - device: - type: tango.pyaml.attribute - attribute: srmag/ps-corr-sh1/c01-a-ch1/current - unit: A - - type: pyaml.configuration.static_catalog_entry - key: SH1A-C01/ps2 - device: - type: tango.pyaml.attribute - attribute: srmag/ps-corr-sh1/c01-a-ch2/current - unit: A - - type: pyaml.configuration.static_catalog_entry - key: SH1A-C01/ps3 - device: - type: tango.pyaml.attribute - attribute: srmag/ps-corr-sh1/c01-a-ch3/current - unit: A devices: - type: pyaml.bpm.bpm name: BPM_C01-01 @@ -99,31 +57,3 @@ devices: x_offset: BPM_C01-01/x_offset y_offset: BPM_C01-01/y_offset tilt: BPM_C01-01/tilt - - type: pyaml.diagnostics.tune_monitor - name: BETATRON_TUNE - tune_h: tune/h - tune_v: tune/v - rf_plant_name: RF - - type: pyaml.rf.rf_plant - name: RF - masterclock: rf/masterclock - - type: pyaml.magnet.quadrupole - name: QF1A-C01 - model: - type: pyaml.magnet.identity_model - unit: A - powerconverter: QF1A-C01/current - - type: pyaml.magnet.cfm_magnet - name: SH1A-C01 - mapping: - - [B0, SH1A-C01-H] - - [A0, SH1A-C01-V] - - [A1, SH1A-C01-SQ] - model: - type: pyaml.magnet.identity_cfm_model - multipoles: [B0, A0, A1] - powerconverters: - - SH1A-C01/ps1 - - SH1A-C01/ps2 - - SH1A-C01/ps3 - units: [A, A, A] diff --git a/tests/test_catalogs.py b/tests/test_catalogs.py index 6c4c9a68..e7fa7534 100644 --- a/tests/test_catalogs.py +++ b/tests/test_catalogs.py @@ -76,21 +76,6 @@ def test_named_catalog_is_shared_and_resolves_devices(install_test_package): bpm.tilt.set(0.01) assert bpm.tilt.get() == 0.01 - quad = sr.live.get_magnet("QF1A-C01") - quad.hardware.set(1.2) - assert quad.hardware.get() == 1.2 - - cfm_h = sr.live.get_magnet("SH1A-C01-H") - cfm_h.hardware.set(2.5) - assert cfm_h.hardware.get() == 2.5 - - tune_monitor = sr.live.get_betatron_tune_monitor("BETATRON_TUNE") - assert np.allclose(tune_monitor.tune.get(), np.array([0.0, 0.0])) - - rf = sr.live.get_rf_plant("RF") - rf.frequency.set(1.23) - assert rf.frequency.get() == 1.23 - @pytest.mark.parametrize( "install_test_package", diff --git a/tests/test_configuration_manager.py b/tests/test_configuration_manager.py index 553f5f12..52be70a0 100644 --- a/tests/test_configuration_manager.py +++ b/tests/test_configuration_manager.py @@ -297,7 +297,7 @@ def test_configuration_manager_repr_includes_catalogs(config_root_path): assert str(manager) == output assert "Catalogs:" in output - assert "device-catalog (pyaml.configuration.static_catalog) entries=12 source=catalog_named.yaml" in output + assert "device-catalog (pyaml.configuration.static_catalog) entries=5 source=catalog_named.yaml" in output def test_configuration_manager_yellow_pages_like_shortcuts( From 2b48c685e28b21e5598e5fe0a81c6e6d42ff48fa Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Mon, 20 Apr 2026 16:56:08 +0200 Subject: [PATCH 08/19] Require catalog keys for BPM device references --- pyaml/bpm/bpm_model.py | 11 +- pyaml/bpm/bpm_simple_model.py | 21 +- pyaml/bpm/bpm_tiltoffset_model.py | 40 +- pyaml/control/controlsystem.py | 28 +- pyaml/control/deviceaccess.py | 10 +- tests/config/EBSOrbit.yaml | 3203 +++----------- tests/config/EBS_chromaticity.yaml | 3203 +++----------- tests/config/bad_conf_duplicate_2.yaml | 33 +- tests/config/bad_conf_duplicate_3.yaml | 43 +- tests/config/bpms.yaml | 58 +- tests/config/catalogs/bpms_catalogs.yaml | 69 + .../catalogs/ebs_orbit_bpm_catalogs.yaml | 3843 +++++++++++++++++ .../catalogs/shared_c04_bpm_catalogs.yaml | 75 + tests/config/config_manager_sr_base.yaml | 3 + tests/config/config_manager_sr_catalogs.yaml | 2 + tests/config/config_manager_sr_devices.yaml | 20 +- tests/config/sr.yaml | 23 +- tests/test_configuration_manager.py | 13 +- tests/test_errors.py | 2 +- 19 files changed, 5382 insertions(+), 5318 deletions(-) create mode 100644 tests/config/catalogs/bpms_catalogs.yaml create mode 100644 tests/config/catalogs/ebs_orbit_bpm_catalogs.yaml create mode 100644 tests/config/catalogs/shared_c04_bpm_catalogs.yaml create mode 100644 tests/config/config_manager_sr_catalogs.yaml diff --git a/pyaml/bpm/bpm_model.py b/pyaml/bpm/bpm_model.py index d2edccf6..c596c85a 100644 --- a/pyaml/bpm/bpm_model.py +++ b/pyaml/bpm/bpm_model.py @@ -1,10 +1,5 @@ from abc import ABCMeta, abstractmethod -import numpy as np -from numpy.typing import NDArray - -from ..control.deviceaccess import DeviceAccessRef - class BPMModel(metaclass=ABCMeta): """ @@ -13,7 +8,7 @@ class BPMModel(metaclass=ABCMeta): """ @abstractmethod - def get_pos_devices(self) -> list[DeviceAccessRef | None]: + def get_pos_devices(self) -> list[str]: """ Get device handles used for position reading @@ -25,7 +20,7 @@ def get_pos_devices(self) -> list[DeviceAccessRef | None]: pass @abstractmethod - def get_tilt_device(self) -> DeviceAccessRef | None: + def get_tilt_device(self) -> str | None: """ Get device handle used for tilt access @@ -37,7 +32,7 @@ def get_tilt_device(self) -> DeviceAccessRef | None: pass @abstractmethod - def get_offset_devices(self) -> list[DeviceAccessRef | None]: + def get_offset_devices(self) -> list[str | 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 938f1864..a6d3a674 100644 --- a/pyaml/bpm/bpm_simple_model.py +++ b/pyaml/bpm/bpm_simple_model.py @@ -1,11 +1,8 @@ -import numpy as np -from numpy.typing import NDArray from pydantic import BaseModel, ConfigDict from pyaml.bpm.bpm_model import BPMModel from ..common.element import __pyaml_repr__ -from ..control.deviceaccess import DeviceAccessRef # Define the main class name for this module PYAMLCLASS = "BPMSimpleModel" @@ -17,10 +14,10 @@ class ConfigModel(BaseModel): Parameters ---------- - x_pos : DeviceAccess, optional - Horizontal position device - y_pos : DeviceAccess, optional - Vertical position device + x_pos : str + Horizontal position catalog key + y_pos : str + Vertical position catalog key x_pos_index : int, optional Index in the array when specified, otherwise scalar value is expected @@ -31,8 +28,8 @@ class ConfigModel(BaseModel): model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") - x_pos: DeviceAccessRef | None - y_pos: DeviceAccessRef | None + x_pos: str + y_pos: str x_pos_index: int | None = None y_pos_index: int | None = None @@ -48,7 +45,7 @@ def __init__(self, cfg: ConfigModel): self.__x_pos = cfg.x_pos self.__y_pos = cfg.y_pos - def get_pos_devices(self) -> list[DeviceAccessRef | None]: + def get_pos_devices(self) -> list[str]: """ Get device handles used for position reading @@ -59,7 +56,7 @@ def get_pos_devices(self) -> list[DeviceAccessRef | None]: """ return [self.__x_pos, self.__y_pos] - def get_tilt_device(self) -> DeviceAccessRef | None: + def get_tilt_device(self) -> str | None: """ Get device handle used for tilt access @@ -70,7 +67,7 @@ def get_tilt_device(self) -> DeviceAccessRef | None: """ return None - def get_offset_devices(self) -> list[DeviceAccessRef | None]: + def get_offset_devices(self) -> list[str | None]: """ Get device handles used for offset access diff --git a/pyaml/bpm/bpm_tiltoffset_model.py b/pyaml/bpm/bpm_tiltoffset_model.py index 8c7993d4..e83d94f5 100644 --- a/pyaml/bpm/bpm_tiltoffset_model.py +++ b/pyaml/bpm/bpm_tiltoffset_model.py @@ -1,12 +1,8 @@ -import numpy as np -from numpy.typing import NDArray from pydantic import BaseModel, ConfigDict -from pyaml.bpm.bpm_model import BPMModel from pyaml.bpm.bpm_simple_model import BPMSimpleModel from ..common.element import __pyaml_repr__ -from ..control.deviceaccess import DeviceAccessRef # Define the main class name for this module PYAMLCLASS = "BPMTiltOffsetModel" @@ -20,27 +16,27 @@ 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 : str + Horizontal position catalog key + y_pos : str + Vertical position catalog key + x_offset : str + Horizontal BPM offset catalog key + y_offset : str + Vertical BPM offset catalog key + tilt : str + BPM tilt catalog key """ model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") - x_pos: DeviceAccessRef | None - y_pos: DeviceAccessRef | None + x_pos: str + y_pos: str x_pos_index: int | None = None y_pos_index: int | None = None - x_offset: DeviceAccessRef | None - y_offset: DeviceAccessRef | None - tilt: DeviceAccessRef | None + x_offset: str + y_offset: str + tilt: str class BPMTiltOffsetModel(BPMSimpleModel): @@ -57,7 +53,7 @@ def __init__(self, cfg: ConfigModel): self.__y_offset = cfg.y_offset self.__tilt = cfg.tilt - def get_pos_devices(self) -> list[DeviceAccessRef | None]: + def get_pos_devices(self) -> list[str]: """ Get device handles used for position reading @@ -68,7 +64,7 @@ def get_pos_devices(self) -> list[DeviceAccessRef | None]: """ return [self.__x_pos, self.__y_pos] - def get_tilt_device(self) -> DeviceAccessRef | None: + def get_tilt_device(self) -> str | None: """ Get device handle used for tilt access @@ -79,7 +75,7 @@ def get_tilt_device(self) -> DeviceAccessRef | None: """ return self.__tilt - def get_offset_devices(self) -> list[DeviceAccessRef | None]: + def get_offset_devices(self) -> list[str | None]: """ Get device handles used for offset access diff --git a/pyaml/control/controlsystem.py b/pyaml/control/controlsystem.py index 00e9c7d6..58021529 100644 --- a/pyaml/control/controlsystem.py +++ b/pyaml/control/controlsystem.py @@ -1,8 +1,6 @@ from abc import ABCMeta, abstractmethod -from typing import Tuple from ..bpm.bpm import BPM -from ..bpm.bpm_model import BPMModel from ..common.abstract import RWMapper from ..common.abstract_aggregator import ScalarAggregator from ..common.element import Element @@ -36,7 +34,7 @@ from ..rf.rf_transmitter import RFTransmitter from ..tuning_tools.measurement_tool import MeasurementTool from ..tuning_tools.tuning_tool import TuningTool -from .deviceaccess import DeviceAccess, DeviceAccessRef +from .deviceaccess import DeviceAccess class ControlSystem(ElementHolder, metaclass=ABCMeta): @@ -86,20 +84,20 @@ def vector_aggregator(self) -> str | None: """Returns the module name used for handling aggregator of DeviceVectorAccess""" return None - def resolve_device(self, dev: DeviceAccessRef | None) -> DeviceAccess | None: - if dev is None or isinstance(dev, DeviceAccess): - return dev - if isinstance(dev, str): - if self._catalog_resolver is None: - raise PyAMLException(f"Control system '{self.name()}' has no catalog configured for key '{dev}'") - return self._catalog_resolver.resolve(dev) - raise PyAMLException(f"Unsupported device reference type: {type(dev).__name__}") + def resolve_device(self, key: str | None) -> DeviceAccess | None: + if key is None: + return None + if self._catalog_resolver is None: + raise PyAMLException(f"Control system '{self.name()}' has no catalog configured for key '{key}'") + return self._catalog_resolver.resolve(key) - def resolve_devices(self, devs: list[DeviceAccessRef | None]) -> list[DeviceAccess | None]: - return [self.resolve_device(dev) for dev in devs] + def resolve_devices(self, keys: list[str | None]) -> list[DeviceAccess | None]: + return [self.resolve_device(key) for key in keys] - def attach_indexed(self, dev: DeviceAccessRef | None, idx: int | None) -> DeviceAccess | None: - dev = self.resolve_device(dev) + def attach_indexed(self, key: str | None, idx: int | None) -> DeviceAccess | None: + dev = self.resolve_device(key) + if dev is None: + return None if idx is not None: return self.attach_array([dev])[0] else: diff --git a/pyaml/control/deviceaccess.py b/pyaml/control/deviceaccess.py index 55fb98a1..752c0c61 100644 --- a/pyaml/control/deviceaccess.py +++ b/pyaml/control/deviceaccess.py @@ -1,5 +1,4 @@ from abc import ABCMeta, abstractmethod -from typing import TypeAlias # TODO: correctly type value @@ -69,9 +68,6 @@ def check_device_availability(self) -> bool: pass -DeviceAccessRef: TypeAlias = DeviceAccess | str - - -def device_unit(device: DeviceAccessRef | None) -> str: - """Return the unit for a concrete device, or an empty unit for string refs.""" - return device.unit() if isinstance(device, DeviceAccess) else "" +def device_unit(device: DeviceAccess | None) -> str: + """Return the unit for a concrete device, or an empty unit when unavailable.""" + return device.unit() if device is not None else "" diff --git a/tests/config/EBSOrbit.yaml b/tests/config/EBSOrbit.yaml index 39df579a..3222868b 100644 --- a/tests/config/EBSOrbit.yaml +++ b/tests/config/EBSOrbit.yaml @@ -11,6 +11,9 @@ controls: - type: tango.pyaml.controlsystem tango_host: ebs-simu-3:10000 name: live + catalog: bpm-catalog +catalogs: + - catalogs/ebs_orbit_bpm_catalogs.yaml data_folder: /data/store arrays: - type: pyaml.arrays.magnet @@ -7702,3839 +7705,1919 @@ 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: 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: - 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: 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-03/SA_VPosition - unit: m + 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: - 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: 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: - 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: 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: - 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: 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-10/SA_VPosition - unit: m + x_pos: BPM_C09-10/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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-10/SA_VPosition - unit: m + x_pos: BPM_C03-10/x_pos + y_pos: BPM_C03-10/y_pos diff --git a/tests/config/EBS_chromaticity.yaml b/tests/config/EBS_chromaticity.yaml index d7e45bcf..8eb63291 100644 --- a/tests/config/EBS_chromaticity.yaml +++ b/tests/config/EBS_chromaticity.yaml @@ -11,6 +11,9 @@ controls: - type: tango.pyaml.controlsystem tango_host: ebs-simu-2:10000 name: live + catalog: bpm-catalog +catalogs: + - catalogs/ebs_orbit_bpm_catalogs.yaml data_folder: /data/store arrays: - type: pyaml.arrays.bpm @@ -54,3839 +57,1919 @@ 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: 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: - 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: 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-03/SA_VPosition - unit: m + 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: - 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: 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: - 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: 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: - 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: 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c05-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c06-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c07-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c08-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c09-10/SA_VPosition - unit: m + x_pos: BPM_C09-10/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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c10-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c11-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c12-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c13-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c14-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c15-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c16-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c17-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c18-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c19-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c20-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c21-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c22-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c23-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c24-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c25-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c26-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c27-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c28-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c29-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c30-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c31-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c32-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c02-10/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-01/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-01/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-02/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-02/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-03/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-03/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-04/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-04/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-05/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-05/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-06/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-06/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-07/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-07/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-08/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-08/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-09/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-09/SA_VPosition - unit: m + 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: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-10/SA_HPosition - unit: m - y_pos: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c03-10/SA_VPosition - unit: m + x_pos: BPM_C03-10/x_pos + y_pos: BPM_C03-10/y_pos diff --git a/tests/config/bad_conf_duplicate_2.yaml b/tests/config/bad_conf_duplicate_2.yaml index 7282bdaf..cbd0ee58 100644 --- a/tests/config/bad_conf_duplicate_2.yaml +++ b/tests/config/bad_conf_duplicate_2.yaml @@ -10,6 +10,9 @@ controls: - type: tango.pyaml.controlsystem tango_host: ebs-simu-3:10000 name: live + catalog: bpm-catalog +catalogs: + - catalogs/shared_c04_bpm_catalogs.yaml data_folder: /data/store arrays: - type: pyaml.arrays.bpm @@ -24,35 +27,17 @@ 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: BPM_C04-04/x + y_pos: BPM_C04-04/y - 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: BPM_C04-05/x + y_pos: BPM_C04-05/y - 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: BPM_C04-06/x + y_pos: BPM_C04-06/y diff --git a/tests/config/bad_conf_duplicate_3.yaml b/tests/config/bad_conf_duplicate_3.yaml index 6e9c7b92..cb19caa0 100644 --- a/tests/config/bad_conf_duplicate_3.yaml +++ b/tests/config/bad_conf_duplicate_3.yaml @@ -10,6 +10,9 @@ controls: - type: tango.pyaml.controlsystem tango_host: ebs-simu-3:10000 name: live + catalog: bpm-catalog +catalogs: + - catalogs/shared_c04_bpm_catalogs.yaml data_folder: /data/store arrays: - type: pyaml.arrays.bpm @@ -23,47 +26,23 @@ 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: BPM_C04-04/x + y_pos: BPM_C04-04/y - 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: BPM_C04-05/x + y_pos: BPM_C04-05/y - 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: BPM_C04-06/x + y_pos: BPM_C04-06/y - 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: BPM_C04-06_2/x + y_pos: BPM_C04-06_2/y diff --git a/tests/config/bpms.yaml b/tests/config/bpms.yaml index e0efafec..9ec7f130 100644 --- a/tests/config/bpms.yaml +++ b/tests/config/bpms.yaml @@ -10,70 +10,40 @@ controls: - type: tango.pyaml.controlsystem tango_host: ebs-simu-3:10000 name: live + catalog: bpm-catalog +catalogs: + - catalogs/bpms_catalogs.yaml data_folder: /data/store devices: - type: pyaml.bpm.bpm 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 + x_pos: BPM_C01-01/x + y_pos: BPM_C01-01/y + x_offset: BPM_C01-01/x_offset + y_offset: BPM_C01-01/y_offset + tilt: BPM_C01-01/tilt - 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 + x_pos: BPM_C01-02/x + y_pos: BPM_C01-02/y - 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 + x_pos: BPM_C01-03/x + y_pos: BPM_C01-03/y - 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 + x_pos: BPM_C01-04/x + y_pos: BPM_C01-04/y - type: pyaml.magnet.cfm_magnet name: SH1A-C01 #Name of the element in the lattice model mapping: diff --git a/tests/config/catalogs/bpms_catalogs.yaml b/tests/config/catalogs/bpms_catalogs.yaml new file mode 100644 index 00000000..8ab55478 --- /dev/null +++ b/tests/config/catalogs/bpms_catalogs.yaml @@ -0,0 +1,69 @@ +type: pyaml.configuration.static_catalog +name: bpm-catalog +entries: + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-01/x + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-01/SA_HPosition + unit: mm + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-01/y + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-01/SA_VPosition + unit: mm + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-01/x_offset + device: + type: tango.pyaml.attribute + attribute: srdiag/bpm/c01-01/HOffset + unit: mm + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-01/y_offset + device: + type: tango.pyaml.attribute + attribute: srdiag/bpm/c01-01/VOffset + unit: mm + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-01/tilt + device: + type: tango.pyaml.attribute + attribute: srdiag/bpm/c01-01/Tilt_Angle + unit: rad + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-02/x + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-02/SA_HPosition + unit: mm + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-02/y + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-02/SA_VPosition + unit: mm + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-03/x + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-03/SA_HPosition + unit: mm + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-03/y + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-03/SA_VPosition + unit: mm + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-04/x + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-04/Position + unit: mm + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-04/y + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-04/Position + unit: mm diff --git a/tests/config/catalogs/ebs_orbit_bpm_catalogs.yaml b/tests/config/catalogs/ebs_orbit_bpm_catalogs.yaml new file mode 100644 index 00000000..0fce64de --- /dev/null +++ b/tests/config/catalogs/ebs_orbit_bpm_catalogs.yaml @@ -0,0 +1,3843 @@ +type: pyaml.configuration.static_catalog +name: bpm-catalog +entries: + - type: pyaml.configuration.static_catalog_entry + key: BPM_C04-01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-01/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C04-01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-01/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C04-02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-02/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C04-02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-02/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C04-03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-03/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C04-03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-03/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C04-04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-04/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C04-04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-04/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C04-05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-05/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C04-05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-05/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C04-06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-06/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C04-06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-06/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C04-07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-07/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C04-07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-07/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C04-08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-08/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C04-08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-08/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C04-09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-09/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C04-09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-09/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C04-10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-10/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C04-10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-10/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C05-01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-01/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C05-01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-01/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C05-02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-02/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C05-02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-02/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C05-03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-03/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C05-03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-03/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C05-04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-04/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C05-04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-04/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C05-05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-05/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C05-05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-05/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C05-06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-06/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C05-06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-06/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C05-07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-07/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C05-07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-07/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C05-08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-08/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C05-08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-08/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C05-09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-09/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C05-09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-09/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C05-10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-10/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C05-10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c05-10/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C06-01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-01/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C06-01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-01/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C06-02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-02/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C06-02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-02/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C06-03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-03/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C06-03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-03/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C06-04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-04/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C06-04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-04/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C06-05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-05/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C06-05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-05/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C06-06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-06/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C06-06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-06/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C06-07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-07/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C06-07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-07/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C06-08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-08/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C06-08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-08/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C06-09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-09/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C06-09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-09/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C06-10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-10/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C06-10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c06-10/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C07-01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-01/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C07-01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-01/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C07-02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-02/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C07-02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-02/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C07-03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-03/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C07-03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-03/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C07-04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-04/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C07-04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-04/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C07-05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-05/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C07-05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-05/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C07-06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-06/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C07-06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-06/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C07-07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-07/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C07-07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-07/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C07-08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-08/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C07-08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-08/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C07-09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-09/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C07-09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-09/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C07-10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-10/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C07-10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c07-10/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C08-01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-01/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C08-01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-01/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C08-02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-02/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C08-02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-02/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C08-03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-03/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C08-03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-03/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C08-04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-04/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C08-04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-04/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C08-05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-05/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C08-05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-05/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C08-06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-06/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C08-06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-06/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C08-07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-07/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C08-07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-07/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C08-08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-08/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C08-08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-08/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C08-09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-09/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C08-09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-09/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C08-10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-10/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C08-10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c08-10/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C09-01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-01/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C09-01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-01/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C09-02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-02/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C09-02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-02/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C09-03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-03/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C09-03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-03/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C09-04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-04/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C09-04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-04/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C09-05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-05/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C09-05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-05/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C09-06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-06/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C09-06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-06/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C09-07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-07/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C09-07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-07/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C09-08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-08/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C09-08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-08/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C09-09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-09/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C09-09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-09/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C09-10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-10/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C09-10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c09-10/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C10-01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-01/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C10-01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-01/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C10-02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-02/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C10-02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-02/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C10-03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-03/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C10-03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-03/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C10-04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-04/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C10-04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-04/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C10-05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-05/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C10-05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-05/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C10-06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-06/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C10-06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-06/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C10-07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-07/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C10-07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-07/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C10-08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-08/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C10-08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-08/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C10-09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-09/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C10-09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-09/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C10-10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-10/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C10-10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c10-10/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C11-01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-01/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C11-01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-01/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C11-02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-02/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C11-02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-02/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C11-03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-03/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C11-03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-03/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C11-04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-04/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C11-04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-04/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C11-05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-05/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C11-05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-05/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C11-06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-06/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C11-06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-06/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C11-07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-07/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C11-07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-07/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C11-08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-08/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C11-08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-08/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C11-09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-09/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C11-09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-09/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C11-10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-10/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C11-10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c11-10/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C12-01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-01/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C12-01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-01/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C12-02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-02/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C12-02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-02/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C12-03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-03/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C12-03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-03/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C12-04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-04/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C12-04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-04/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C12-05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-05/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C12-05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-05/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C12-06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-06/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C12-06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-06/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C12-07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-07/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C12-07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-07/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C12-08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-08/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C12-08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-08/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C12-09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-09/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C12-09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-09/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C12-10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-10/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C12-10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c12-10/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C13-01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-01/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C13-01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-01/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C13-02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-02/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C13-02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-02/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C13-03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-03/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C13-03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-03/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C13-04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-04/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C13-04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-04/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C13-05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-05/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C13-05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-05/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C13-06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-06/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C13-06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-06/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C13-07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-07/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C13-07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-07/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C13-08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-08/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C13-08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-08/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C13-09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-09/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C13-09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-09/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C13-10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-10/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C13-10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c13-10/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C14-01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-01/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C14-01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-01/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C14-02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-02/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C14-02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-02/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C14-03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-03/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C14-03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-03/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C14-04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-04/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C14-04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-04/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C14-05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-05/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C14-05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-05/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C14-06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-06/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C14-06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-06/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C14-07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-07/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C14-07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-07/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C14-08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-08/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C14-08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-08/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C14-09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-09/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C14-09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-09/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C14-10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-10/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C14-10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c14-10/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C15-01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-01/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C15-01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-01/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C15-02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-02/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C15-02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-02/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C15-03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-03/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C15-03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-03/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C15-04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-04/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C15-04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-04/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C15-05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-05/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C15-05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-05/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C15-06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-06/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C15-06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-06/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C15-07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-07/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C15-07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-07/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C15-08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-08/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C15-08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-08/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C15-09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-09/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C15-09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-09/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C15-10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-10/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C15-10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c15-10/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C16-01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-01/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C16-01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-01/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C16-02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-02/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C16-02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-02/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C16-03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-03/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C16-03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-03/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C16-04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-04/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C16-04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-04/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C16-05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-05/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C16-05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-05/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C16-06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-06/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C16-06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-06/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C16-07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-07/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C16-07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-07/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C16-08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-08/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C16-08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-08/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C16-09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-09/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C16-09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-09/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C16-10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-10/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C16-10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c16-10/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C17-01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-01/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C17-01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-01/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C17-02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-02/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C17-02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-02/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C17-03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-03/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C17-03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-03/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C17-04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-04/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C17-04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-04/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C17-05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-05/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C17-05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-05/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C17-06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-06/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C17-06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-06/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C17-07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-07/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C17-07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-07/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C17-08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-08/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C17-08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-08/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C17-09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-09/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C17-09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-09/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C17-10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-10/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C17-10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c17-10/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C18-01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-01/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C18-01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-01/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C18-02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-02/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C18-02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-02/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C18-03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-03/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C18-03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-03/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C18-04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-04/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C18-04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-04/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C18-05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-05/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C18-05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-05/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C18-06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-06/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C18-06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-06/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C18-07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-07/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C18-07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-07/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C18-08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-08/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C18-08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-08/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C18-09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-09/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C18-09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-09/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C18-10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-10/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C18-10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c18-10/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C19-01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-01/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C19-01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-01/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C19-02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-02/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C19-02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-02/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C19-03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-03/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C19-03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-03/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C19-04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-04/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C19-04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-04/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C19-05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-05/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C19-05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-05/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C19-06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-06/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C19-06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-06/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C19-07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-07/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C19-07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-07/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C19-08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-08/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C19-08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-08/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C19-09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-09/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C19-09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-09/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C19-10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-10/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C19-10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c19-10/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C20-01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-01/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C20-01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-01/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C20-02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-02/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C20-02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-02/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C20-03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-03/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C20-03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-03/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C20-04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-04/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C20-04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-04/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C20-05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-05/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C20-05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-05/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C20-06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-06/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C20-06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-06/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C20-07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-07/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C20-07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-07/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C20-08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-08/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C20-08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-08/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C20-09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-09/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C20-09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-09/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C20-10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-10/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C20-10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c20-10/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C21-01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-01/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C21-01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-01/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C21-02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-02/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C21-02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-02/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C21-03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-03/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C21-03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-03/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C21-04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-04/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C21-04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-04/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C21-05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-05/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C21-05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-05/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C21-06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-06/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C21-06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-06/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C21-07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-07/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C21-07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-07/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C21-08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-08/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C21-08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-08/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C21-09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-09/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C21-09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-09/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C21-10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-10/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C21-10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c21-10/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C22-01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-01/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C22-01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-01/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C22-02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-02/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C22-02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-02/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C22-03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-03/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C22-03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-03/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C22-04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-04/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C22-04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-04/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C22-05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-05/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C22-05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-05/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C22-06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-06/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C22-06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-06/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C22-07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-07/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C22-07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-07/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C22-08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-08/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C22-08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-08/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C22-09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-09/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C22-09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-09/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C22-10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-10/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C22-10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c22-10/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C23-01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-01/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C23-01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-01/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C23-02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-02/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C23-02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-02/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C23-03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-03/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C23-03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-03/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C23-04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-04/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C23-04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-04/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C23-05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-05/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C23-05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-05/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C23-06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-06/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C23-06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-06/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C23-07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-07/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C23-07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-07/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C23-08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-08/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C23-08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-08/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C23-09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-09/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C23-09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-09/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C23-10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-10/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C23-10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c23-10/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C24-01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-01/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C24-01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-01/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C24-02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-02/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C24-02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-02/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C24-03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-03/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C24-03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-03/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C24-04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-04/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C24-04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-04/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C24-05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-05/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C24-05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-05/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C24-06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-06/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C24-06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-06/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C24-07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-07/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C24-07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-07/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C24-08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-08/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C24-08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-08/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C24-09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-09/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C24-09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-09/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C24-10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-10/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C24-10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c24-10/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C25-01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-01/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C25-01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-01/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C25-02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-02/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C25-02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-02/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C25-03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-03/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C25-03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-03/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C25-04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-04/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C25-04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-04/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C25-05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-05/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C25-05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-05/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C25-06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-06/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C25-06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-06/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C25-07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-07/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C25-07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-07/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C25-08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-08/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C25-08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-08/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C25-09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-09/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C25-09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-09/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C25-10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-10/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C25-10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c25-10/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C26-01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-01/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C26-01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-01/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C26-02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-02/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C26-02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-02/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C26-03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-03/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C26-03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-03/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C26-04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-04/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C26-04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-04/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C26-05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-05/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C26-05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-05/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C26-06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-06/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C26-06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-06/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C26-07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-07/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C26-07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-07/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C26-08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-08/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C26-08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-08/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C26-09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-09/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C26-09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-09/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C26-10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-10/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C26-10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c26-10/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C27-01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-01/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C27-01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-01/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C27-02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-02/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C27-02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-02/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C27-03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-03/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C27-03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-03/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C27-04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-04/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C27-04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-04/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C27-05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-05/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C27-05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-05/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C27-06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-06/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C27-06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-06/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C27-07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-07/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C27-07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-07/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C27-08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-08/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C27-08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-08/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C27-09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-09/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C27-09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-09/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C27-10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-10/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C27-10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c27-10/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C28-01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-01/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C28-01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-01/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C28-02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-02/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C28-02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-02/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C28-03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-03/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C28-03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-03/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C28-04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-04/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C28-04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-04/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C28-05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-05/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C28-05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-05/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C28-06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-06/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C28-06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-06/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C28-07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-07/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C28-07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-07/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C28-08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-08/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C28-08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-08/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C28-09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-09/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C28-09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-09/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C28-10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-10/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C28-10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c28-10/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C29-01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-01/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C29-01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-01/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C29-02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-02/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C29-02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-02/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C29-03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-03/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C29-03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-03/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C29-04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-04/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C29-04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-04/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C29-05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-05/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C29-05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-05/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C29-06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-06/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C29-06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-06/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C29-07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-07/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C29-07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-07/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C29-08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-08/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C29-08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-08/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C29-09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-09/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C29-09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-09/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C29-10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-10/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C29-10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c29-10/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C30-01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-01/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C30-01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-01/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C30-02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-02/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C30-02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-02/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C30-03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-03/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C30-03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-03/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C30-04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-04/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C30-04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-04/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C30-05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-05/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C30-05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-05/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C30-06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-06/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C30-06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-06/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C30-07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-07/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C30-07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-07/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C30-08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-08/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C30-08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-08/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C30-09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-09/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C30-09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-09/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C30-10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-10/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C30-10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c30-10/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C31-01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-01/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C31-01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-01/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C31-02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-02/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C31-02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-02/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C31-03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-03/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C31-03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-03/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C31-04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-04/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C31-04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-04/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C31-05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-05/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C31-05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-05/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C31-06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-06/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C31-06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-06/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C31-07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-07/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C31-07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-07/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C31-08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-08/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C31-08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-08/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C31-09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-09/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C31-09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-09/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C31-10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-10/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C31-10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c31-10/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C32-01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-01/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C32-01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-01/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C32-02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-02/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C32-02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-02/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C32-03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-03/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C32-03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-03/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C32-04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-04/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C32-04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-04/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C32-05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-05/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C32-05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-05/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C32-06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-06/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C32-06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-06/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C32-07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-07/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C32-07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-07/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C32-08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-08/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C32-08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-08/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C32-09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-09/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C32-09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-09/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C32-10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-10/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C32-10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c32-10/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-01/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-01/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-02/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-02/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-03/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-03/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-04/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-04/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-05/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-05/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-06/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-06/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-07/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-07/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-08/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-08/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-09/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-09/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-10/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C01-10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c01-10/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C02-01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-01/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C02-01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-01/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C02-02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-02/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C02-02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-02/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C02-03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-03/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C02-03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-03/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C02-04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-04/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C02-04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-04/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C02-05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-05/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C02-05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-05/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C02-06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-06/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C02-06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-06/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C02-07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-07/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C02-07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-07/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C02-08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-08/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C02-08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-08/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C02-09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-09/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C02-09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-09/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C02-10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-10/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C02-10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c02-10/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C03-01/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-01/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C03-01/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-01/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C03-02/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-02/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C03-02/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-02/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C03-03/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-03/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C03-03/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-03/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C03-04/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-04/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C03-04/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-04/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C03-05/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-05/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C03-05/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-05/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C03-06/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-06/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C03-06/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-06/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C03-07/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-07/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C03-07/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-07/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C03-08/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-08/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C03-08/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-08/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C03-09/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-09/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C03-09/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-09/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C03-10/x_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-10/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C03-10/y_pos + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c03-10/SA_VPosition + unit: m diff --git a/tests/config/catalogs/shared_c04_bpm_catalogs.yaml b/tests/config/catalogs/shared_c04_bpm_catalogs.yaml new file mode 100644 index 00000000..bfe88ae4 --- /dev/null +++ b/tests/config/catalogs/shared_c04_bpm_catalogs.yaml @@ -0,0 +1,75 @@ +type: pyaml.configuration.static_catalog +name: bpm-catalog +entries: + - type: pyaml.configuration.static_catalog_entry + key: BPM_C04-01/x + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-01/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C04-01/y + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-01/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C04-02/x + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-02/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C04-02/y + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-02/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C04-04/x + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-04/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C04-04/y + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-04/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C04-05/x + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-05/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C04-05/y + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-05/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C04-06/x + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-06/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C04-06/y + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-06/SA_VPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C04-06_2/x + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-06/SA_HPosition + unit: m + - type: pyaml.configuration.static_catalog_entry + key: BPM_C04-06_2/y + device: + type: tango.pyaml.attribute_read_only + attribute: srdiag/bpm/c04-06/SA_VPosition + unit: m diff --git a/tests/config/config_manager_sr_base.yaml b/tests/config/config_manager_sr_base.yaml index 914739fa..13cfe2f5 100644 --- a/tests/config/config_manager_sr_base.yaml +++ b/tests/config/config_manager_sr_base.yaml @@ -10,4 +10,7 @@ controls: - type: tango.pyaml.controlsystem tango_host: ebs-simu-3:10000 name: live + catalog: bpm-catalog +catalogs: + - catalogs/shared_c04_bpm_catalogs.yaml data_folder: /data/store diff --git a/tests/config/config_manager_sr_catalogs.yaml b/tests/config/config_manager_sr_catalogs.yaml new file mode 100644 index 00000000..309da552 --- /dev/null +++ b/tests/config/config_manager_sr_catalogs.yaml @@ -0,0 +1,2 @@ +catalogs: + - catalogs/shared_c04_bpm_catalogs.yaml diff --git a/tests/config/config_manager_sr_devices.yaml b/tests/config/config_manager_sr_devices.yaml index e02a64b9..d6b76da1 100644 --- a/tests/config/config_manager_sr_devices.yaml +++ b/tests/config/config_manager_sr_devices.yaml @@ -5,23 +5,11 @@ 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: BPM_C04-01/x + y_pos: BPM_C04-01/y - 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: BPM_C04-02/x + y_pos: BPM_C04-02/y diff --git a/tests/config/sr.yaml b/tests/config/sr.yaml index e2f6ac2e..440b9ba9 100644 --- a/tests/config/sr.yaml +++ b/tests/config/sr.yaml @@ -10,6 +10,9 @@ controls: - type: tango.pyaml.controlsystem tango_host: ebs-simu-3:10000 name: live + catalog: bpm-catalog +catalogs: + - catalogs/shared_c04_bpm_catalogs.yaml data_folder: /data/store arrays: - type: pyaml.arrays.magnet @@ -46,23 +49,11 @@ 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: BPM_C04-01/x + y_pos: BPM_C04-01/y - 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: BPM_C04-02/x + y_pos: BPM_C04-02/y diff --git a/tests/test_configuration_manager.py b/tests/test_configuration_manager.py index 52be70a0..d917a002 100644 --- a/tests/test_configuration_manager.py +++ b/tests/test_configuration_manager.py @@ -172,7 +172,7 @@ def test_configuration_manager_accumulates_multiple_device_fragments( manager.add(sr_devices_fragment) manager.add(tune_monitor_devices_fragment) - assert manager.categories() == ["controls", "simulators", "devices"] + assert manager.categories() == ["controls", "catalogs", "simulators", "devices"] assert manager.keys("devices") == [ "QF1A-C01", "SH1A-C01", @@ -205,6 +205,17 @@ def test_configuration_manager_tracks_catalogs_as_named_category(config_root_pat assert manager.catalogs == ["device-catalog"] +def test_configuration_manager_adds_catalog_fragment(config_root_path): + manager = ConfigurationManager() + manager.add(config_root_path / "config_manager_sr_catalogs.yaml") + + assert manager.categories() == ["catalogs"] + assert manager.keys("catalogs") == ["bpm-catalog"] + assert manager.has("catalogs", "bpm-catalog") + assert manager.get("catalogs", "bpm-catalog")["type"] == "pyaml.configuration.static_catalog" + assert manager.get("catalogs", "bpm-catalog")["entries"][0]["key"] == "BPM_C04-01/x" + + def test_accelerator_load_stays_compatible(config_manager_base_config): accelerator = Accelerator.load(config_manager_base_config) diff --git a/tests/test_errors.py b/tests/test_errors.py index 58471afa..968a84e9 100644 --- a/tests/test_errors.py +++ b/tests/test_errors.py @@ -24,7 +24,7 @@ def test_tune(install_test_package): ml: Accelerator = Accelerator.load("tests/config/bad_conf_duplicate_3.yaml") assert "Configuration entry 'BPM_C04-06' is duplicated inside category 'devices'" in str(exc) assert "bad_conf_duplicate_3.yaml" in str(exc) - assert "line 58, column 3" in str(exc) + assert "line 43, column 3" in str(exc) with pytest.raises(PyAMLConfigException) as exc: ml: Accelerator = Accelerator.load("tests/config/bad_conf_duplicate_4.yaml") From e2fcf63bd79ee20927e1eb1b83008cfde2b439a1 Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Tue, 21 Apr 2026 13:00:53 +0200 Subject: [PATCH 09/19] Rollback to origin/main for some files. --- pyaml/control/abstract_impl.py | 16 ++++++---------- pyaml/control/controlsystem.py | 1 + pyaml/control/deviceaccess.py | 5 ----- pyaml/magnet/linear_cfm_model.py | 4 ++-- pyaml/magnet/linear_model.py | 4 ++-- pyaml/magnet/linear_serialized_model.py | 4 ++-- pyaml/magnet/spline_model.py | 4 ++-- pyaml/rf/rf_plant.py | 2 +- 8 files changed, 16 insertions(+), 24 deletions(-) diff --git a/pyaml/control/abstract_impl.py b/pyaml/control/abstract_impl.py index b44fa97c..317b78c3 100644 --- a/pyaml/control/abstract_impl.py +++ b/pyaml/control/abstract_impl.py @@ -343,8 +343,7 @@ def set_and_wait(self, value: double): raise NotImplementedError("Not implemented yet.") def unit(self) -> str: - unit = self.__model.get_hardware_units()[0] - return unit if unit != "" else self.__dev.unit() + return self.__model.get_hardware_units()[0] def set_magnet_rigidity(self, brho: np.double): self.__model.set_magnet_rigidity(brho) @@ -418,10 +417,7 @@ def set_and_wait(self, value: np.array): # Gets the unit of the value def unit(self) -> list[str]: - units = self.__model.get_hardware_units() - return [ - model_unit if model_unit != "" else dev.unit() for model_unit, dev in zip(units, self.__devs, strict=True) - ] + return self.__model.get_hardware_units() # ------------------------------------------------------------------------------ @@ -605,7 +601,7 @@ def set_and_wait(self, value: float): raise NotImplementedError("Not implemented yet.") def unit(self) -> str: - return self.__dev.unit() + return self.__transmitter._cfg.voltage.unit() # ------------------------------------------------------------------------------ @@ -631,7 +627,7 @@ def set_and_wait(self, value: float): raise NotImplementedError("Not implemented yet.") def unit(self) -> str: - return self.__dev.unit() + return self.__transmitter._cfg.phase.unit() # ------------------------------------------------------------------------------ @@ -657,7 +653,7 @@ def set_and_wait(self, value: float): raise NotImplementedError("Not implemented yet.") def unit(self) -> str: - return self.__dev.unit() + return self.__rf._cfg.masterclock.unit() # ------------------------------------------------------------------------------ @@ -682,7 +678,7 @@ def get(self) -> NDArray: ) def unit(self) -> str: - return self.__devs[1].unit() + return self.__tune_monitor._cfg.tune_v.unit() # ------------------------------------------------------------------------------ diff --git a/pyaml/control/controlsystem.py b/pyaml/control/controlsystem.py index 58021529..c7199935 100644 --- a/pyaml/control/controlsystem.py +++ b/pyaml/control/controlsystem.py @@ -271,6 +271,7 @@ def fill_device(self, elements: list[Element]): self.add_rf_plant(ne) elif isinstance(e, BetatronTuneMonitor): + # Built in tune monitor tuneDevs = self.attach([e._cfg.tune_h, e._cfg.tune_v]) betatron_tune = RBetatronTuneArray(e, tuneDevs) e = e.attach(self, betatron_tune) diff --git a/pyaml/control/deviceaccess.py b/pyaml/control/deviceaccess.py index 752c0c61..ec37cd4f 100644 --- a/pyaml/control/deviceaccess.py +++ b/pyaml/control/deviceaccess.py @@ -66,8 +66,3 @@ def check_device_availability(self) -> bool: True if device is available, False otherwise """ pass - - -def device_unit(device: DeviceAccess | None) -> str: - """Return the unit for a concrete device, or an empty unit when unavailable.""" - return device.unit() if device is not None else "" diff --git a/pyaml/magnet/linear_cfm_model.py b/pyaml/magnet/linear_cfm_model.py index 78fbb5c6..c1795c12 100644 --- a/pyaml/magnet/linear_cfm_model.py +++ b/pyaml/magnet/linear_cfm_model.py @@ -5,7 +5,7 @@ from ..common.exception import PyAMLException from ..configuration.curve import Curve from ..configuration.matrix import Matrix -from ..control.deviceaccess import DeviceAccess, device_unit +from ..control.deviceaccess import DeviceAccess from .model import MagnetModel # Define the main class name for this module @@ -149,7 +149,7 @@ def get_strength_units(self) -> list[str]: return self._cfg.units def get_hardware_units(self) -> list[str]: - return np.array([device_unit(p) for p in self._cfg.powerconverters]) + return np.array([p.unit() for p in self._cfg.powerconverters]) def get_devices(self) -> list[DeviceAccess]: return self._cfg.powerconverters diff --git a/pyaml/magnet/linear_model.py b/pyaml/magnet/linear_model.py index e747ee79..ac9b57e0 100644 --- a/pyaml/magnet/linear_model.py +++ b/pyaml/magnet/linear_model.py @@ -3,7 +3,7 @@ from ..common.element import __pyaml_repr__ from ..configuration.curve import Curve -from ..control.deviceaccess import DeviceAccess, device_unit +from ..control.deviceaccess import DeviceAccess from .model import MagnetModel # Define the main class name for this module @@ -60,7 +60,7 @@ def __init__(self, cfg: ConfigModel): self.__g = cfg.calibration_factor * cfg.crosstalk self.__o = cfg.calibration_offset self.__strength_unit = cfg.unit - self.__hardware_unit = device_unit(cfg.powerconverter) + self.__hardware_unit = cfg.powerconverter.unit() self.__brho = np.nan self.__ps = cfg.powerconverter diff --git a/pyaml/magnet/linear_serialized_model.py b/pyaml/magnet/linear_serialized_model.py index b65e14c7..66018f69 100644 --- a/pyaml/magnet/linear_serialized_model.py +++ b/pyaml/magnet/linear_serialized_model.py @@ -7,7 +7,7 @@ from ..configuration.inline_curve import ConfigModel as InlineCurveModel from ..configuration.inline_curve import InlineCurve from ..configuration.matrix import Matrix -from ..control.deviceaccess import DeviceAccess, device_unit +from ..control.deviceaccess import DeviceAccess from .linear_model import ConfigModel as LinearConfigModel from .linear_model import LinearMagnetModel from .model import MagnetModel @@ -165,7 +165,7 @@ def get_strength_units(self) -> list[str]: return self._cfg.units def get_hardware_units(self) -> list[str]: - return [device_unit(self._cfg.powerconverter)] * self.__nbMagnets + return [p.unit() for p in self._cfg.__sub_models] def get_devices(self) -> list[DeviceAccess]: return [self._cfg.powerconverter] * self.__nbMagnets diff --git a/pyaml/magnet/spline_model.py b/pyaml/magnet/spline_model.py index 03b5deb3..bc6d20d3 100644 --- a/pyaml/magnet/spline_model.py +++ b/pyaml/magnet/spline_model.py @@ -4,7 +4,7 @@ from ..common.element import __pyaml_repr__ from ..configuration.curve import Curve -from ..control.deviceaccess import DeviceAccess, device_unit +from ..control.deviceaccess import DeviceAccess from .model import MagnetModel # Define the main class name for this module @@ -57,7 +57,7 @@ def __init__(self, cfg: ConfigModel): self.__curve[:, 1] = self.__curve[:, 1] * cfg.calibration_factor * cfg.crosstalk + cfg.calibration_offset rcurve = Curve.inverse(self.__curve) self.__strength_unit = cfg.unit - self.__hardware_unit = device_unit(cfg.powerconverter) + self.__hardware_unit = cfg.powerconverter.unit() self.__brho = np.nan self.__ps = cfg.powerconverter self.__spl = make_smoothing_spline(self.__curve[:, 0], self.__curve[:, 1], lam=cfg.alpha) diff --git a/pyaml/rf/rf_plant.py b/pyaml/rf/rf_plant.py index 9747324d..5c5bfe53 100644 --- a/pyaml/rf/rf_plant.py +++ b/pyaml/rf/rf_plant.py @@ -91,4 +91,4 @@ def set_and_wait(self, value: float): raise NotImplementedError("Not implemented yet.") def unit(self) -> str: - return self.__trans[0].voltage.unit() + return self.__trans[0]._cfg.phase.unit() From b404312633ef1d723fc38cfe44f00b42202ea702 Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Wed, 22 Apr 2026 11:07:43 +0200 Subject: [PATCH 10/19] Changing the keys for the test catalogs --- tests/config/EBSOrbit.yaml | 1280 ++++++++--------- tests/config/EBS_chromaticity.yaml | 1280 ++++++++--------- tests/config/bad_conf_duplicate_2.yaml | 12 +- tests/config/bad_conf_duplicate_3.yaml | 16 +- tests/config/bpms.yaml | 22 +- tests/config/catalog_named.yaml | 20 +- tests/config/catalogs/bpms_catalogs.yaml | 26 +- .../catalogs/ebs_orbit_bpm_catalogs.yaml | 1280 ++++++++--------- .../catalogs/shared_c04_bpm_catalogs.yaml | 32 +- tests/config/config_manager_sr_devices.yaml | 8 +- tests/config/sr.yaml | 8 +- tests/test_configuration_manager.py | 4 +- 12 files changed, 1985 insertions(+), 2003 deletions(-) diff --git a/tests/config/EBSOrbit.yaml b/tests/config/EBSOrbit.yaml index 3222868b..0fa037d4 100644 --- a/tests/config/EBSOrbit.yaml +++ b/tests/config/EBSOrbit.yaml @@ -7705,1919 +7705,1919 @@ devices: name: BPM_C04-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C04-01/x_pos - y_pos: BPM_C04-01/y_pos + x_pos: srdiag/bpm/c04-01/SA_HPosition + y_pos: srdiag/bpm/c04-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C04-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C04-02/x_pos - y_pos: BPM_C04-02/y_pos + x_pos: srdiag/bpm/c04-02/SA_HPosition + y_pos: srdiag/bpm/c04-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C04-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C04-03/x_pos - y_pos: BPM_C04-03/y_pos + x_pos: srdiag/bpm/c04-03/SA_HPosition + y_pos: srdiag/bpm/c04-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C04-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C04-04/x_pos - y_pos: BPM_C04-04/y_pos + x_pos: srdiag/bpm/c04-04/SA_HPosition + y_pos: srdiag/bpm/c04-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C04-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C04-05/x_pos - y_pos: BPM_C04-05/y_pos + x_pos: srdiag/bpm/c04-05/SA_HPosition + y_pos: srdiag/bpm/c04-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C04-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C04-06/x_pos - y_pos: BPM_C04-06/y_pos + x_pos: srdiag/bpm/c04-06/SA_HPosition + y_pos: srdiag/bpm/c04-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C04-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C04-07/x_pos - y_pos: BPM_C04-07/y_pos + x_pos: srdiag/bpm/c04-07/SA_HPosition + y_pos: srdiag/bpm/c04-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C04-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C04-08/x_pos - y_pos: BPM_C04-08/y_pos + x_pos: srdiag/bpm/c04-08/SA_HPosition + y_pos: srdiag/bpm/c04-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C04-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C04-09/x_pos - y_pos: BPM_C04-09/y_pos + x_pos: srdiag/bpm/c04-09/SA_HPosition + y_pos: srdiag/bpm/c04-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C04-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C04-10/x_pos - y_pos: BPM_C04-10/y_pos + x_pos: srdiag/bpm/c04-10/SA_HPosition + y_pos: srdiag/bpm/c04-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C05-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C05-01/x_pos - y_pos: BPM_C05-01/y_pos + x_pos: srdiag/bpm/c05-01/SA_HPosition + y_pos: srdiag/bpm/c05-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C05-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C05-02/x_pos - y_pos: BPM_C05-02/y_pos + x_pos: srdiag/bpm/c05-02/SA_HPosition + y_pos: srdiag/bpm/c05-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C05-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C05-03/x_pos - y_pos: BPM_C05-03/y_pos + x_pos: srdiag/bpm/c05-03/SA_HPosition + y_pos: srdiag/bpm/c05-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C05-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C05-04/x_pos - y_pos: BPM_C05-04/y_pos + x_pos: srdiag/bpm/c05-04/SA_HPosition + y_pos: srdiag/bpm/c05-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C05-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C05-05/x_pos - y_pos: BPM_C05-05/y_pos + x_pos: srdiag/bpm/c05-05/SA_HPosition + y_pos: srdiag/bpm/c05-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C05-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C05-06/x_pos - y_pos: BPM_C05-06/y_pos + x_pos: srdiag/bpm/c05-06/SA_HPosition + y_pos: srdiag/bpm/c05-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C05-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C05-07/x_pos - y_pos: BPM_C05-07/y_pos + x_pos: srdiag/bpm/c05-07/SA_HPosition + y_pos: srdiag/bpm/c05-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C05-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C05-08/x_pos - y_pos: BPM_C05-08/y_pos + x_pos: srdiag/bpm/c05-08/SA_HPosition + y_pos: srdiag/bpm/c05-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C05-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C05-09/x_pos - y_pos: BPM_C05-09/y_pos + x_pos: srdiag/bpm/c05-09/SA_HPosition + y_pos: srdiag/bpm/c05-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C05-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C05-10/x_pos - y_pos: BPM_C05-10/y_pos + x_pos: srdiag/bpm/c05-10/SA_HPosition + y_pos: srdiag/bpm/c05-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C06-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C06-01/x_pos - y_pos: BPM_C06-01/y_pos + x_pos: srdiag/bpm/c06-01/SA_HPosition + y_pos: srdiag/bpm/c06-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C06-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C06-02/x_pos - y_pos: BPM_C06-02/y_pos + x_pos: srdiag/bpm/c06-02/SA_HPosition + y_pos: srdiag/bpm/c06-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C06-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C06-03/x_pos - y_pos: BPM_C06-03/y_pos + x_pos: srdiag/bpm/c06-03/SA_HPosition + y_pos: srdiag/bpm/c06-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C06-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C06-04/x_pos - y_pos: BPM_C06-04/y_pos + x_pos: srdiag/bpm/c06-04/SA_HPosition + y_pos: srdiag/bpm/c06-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C06-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C06-05/x_pos - y_pos: BPM_C06-05/y_pos + x_pos: srdiag/bpm/c06-05/SA_HPosition + y_pos: srdiag/bpm/c06-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C06-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C06-06/x_pos - y_pos: BPM_C06-06/y_pos + x_pos: srdiag/bpm/c06-06/SA_HPosition + y_pos: srdiag/bpm/c06-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C06-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C06-07/x_pos - y_pos: BPM_C06-07/y_pos + x_pos: srdiag/bpm/c06-07/SA_HPosition + y_pos: srdiag/bpm/c06-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C06-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C06-08/x_pos - y_pos: BPM_C06-08/y_pos + x_pos: srdiag/bpm/c06-08/SA_HPosition + y_pos: srdiag/bpm/c06-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C06-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C06-09/x_pos - y_pos: BPM_C06-09/y_pos + x_pos: srdiag/bpm/c06-09/SA_HPosition + y_pos: srdiag/bpm/c06-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C06-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C06-10/x_pos - y_pos: BPM_C06-10/y_pos + x_pos: srdiag/bpm/c06-10/SA_HPosition + y_pos: srdiag/bpm/c06-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C07-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C07-01/x_pos - y_pos: BPM_C07-01/y_pos + x_pos: srdiag/bpm/c07-01/SA_HPosition + y_pos: srdiag/bpm/c07-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C07-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C07-02/x_pos - y_pos: BPM_C07-02/y_pos + x_pos: srdiag/bpm/c07-02/SA_HPosition + y_pos: srdiag/bpm/c07-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C07-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C07-03/x_pos - y_pos: BPM_C07-03/y_pos + x_pos: srdiag/bpm/c07-03/SA_HPosition + y_pos: srdiag/bpm/c07-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C07-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C07-04/x_pos - y_pos: BPM_C07-04/y_pos + x_pos: srdiag/bpm/c07-04/SA_HPosition + y_pos: srdiag/bpm/c07-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C07-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C07-05/x_pos - y_pos: BPM_C07-05/y_pos + x_pos: srdiag/bpm/c07-05/SA_HPosition + y_pos: srdiag/bpm/c07-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C07-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C07-06/x_pos - y_pos: BPM_C07-06/y_pos + x_pos: srdiag/bpm/c07-06/SA_HPosition + y_pos: srdiag/bpm/c07-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C07-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C07-07/x_pos - y_pos: BPM_C07-07/y_pos + x_pos: srdiag/bpm/c07-07/SA_HPosition + y_pos: srdiag/bpm/c07-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C07-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C07-08/x_pos - y_pos: BPM_C07-08/y_pos + x_pos: srdiag/bpm/c07-08/SA_HPosition + y_pos: srdiag/bpm/c07-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C07-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C07-09/x_pos - y_pos: BPM_C07-09/y_pos + x_pos: srdiag/bpm/c07-09/SA_HPosition + y_pos: srdiag/bpm/c07-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C07-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C07-10/x_pos - y_pos: BPM_C07-10/y_pos + x_pos: srdiag/bpm/c07-10/SA_HPosition + y_pos: srdiag/bpm/c07-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C08-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C08-01/x_pos - y_pos: BPM_C08-01/y_pos + x_pos: srdiag/bpm/c08-01/SA_HPosition + y_pos: srdiag/bpm/c08-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C08-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C08-02/x_pos - y_pos: BPM_C08-02/y_pos + x_pos: srdiag/bpm/c08-02/SA_HPosition + y_pos: srdiag/bpm/c08-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C08-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C08-03/x_pos - y_pos: BPM_C08-03/y_pos + x_pos: srdiag/bpm/c08-03/SA_HPosition + y_pos: srdiag/bpm/c08-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C08-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C08-04/x_pos - y_pos: BPM_C08-04/y_pos + x_pos: srdiag/bpm/c08-04/SA_HPosition + y_pos: srdiag/bpm/c08-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C08-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C08-05/x_pos - y_pos: BPM_C08-05/y_pos + x_pos: srdiag/bpm/c08-05/SA_HPosition + y_pos: srdiag/bpm/c08-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C08-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C08-06/x_pos - y_pos: BPM_C08-06/y_pos + x_pos: srdiag/bpm/c08-06/SA_HPosition + y_pos: srdiag/bpm/c08-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C08-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C08-07/x_pos - y_pos: BPM_C08-07/y_pos + x_pos: srdiag/bpm/c08-07/SA_HPosition + y_pos: srdiag/bpm/c08-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C08-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C08-08/x_pos - y_pos: BPM_C08-08/y_pos + x_pos: srdiag/bpm/c08-08/SA_HPosition + y_pos: srdiag/bpm/c08-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C08-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C08-09/x_pos - y_pos: BPM_C08-09/y_pos + x_pos: srdiag/bpm/c08-09/SA_HPosition + y_pos: srdiag/bpm/c08-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C08-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C08-10/x_pos - y_pos: BPM_C08-10/y_pos + x_pos: srdiag/bpm/c08-10/SA_HPosition + y_pos: srdiag/bpm/c08-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C09-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C09-01/x_pos - y_pos: BPM_C09-01/y_pos + x_pos: srdiag/bpm/c09-01/SA_HPosition + y_pos: srdiag/bpm/c09-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C09-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C09-02/x_pos - y_pos: BPM_C09-02/y_pos + x_pos: srdiag/bpm/c09-02/SA_HPosition + y_pos: srdiag/bpm/c09-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C09-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C09-03/x_pos - y_pos: BPM_C09-03/y_pos + x_pos: srdiag/bpm/c09-03/SA_HPosition + y_pos: srdiag/bpm/c09-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C09-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C09-04/x_pos - y_pos: BPM_C09-04/y_pos + x_pos: srdiag/bpm/c09-04/SA_HPosition + y_pos: srdiag/bpm/c09-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C09-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C09-05/x_pos - y_pos: BPM_C09-05/y_pos + x_pos: srdiag/bpm/c09-05/SA_HPosition + y_pos: srdiag/bpm/c09-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C09-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C09-06/x_pos - y_pos: BPM_C09-06/y_pos + x_pos: srdiag/bpm/c09-06/SA_HPosition + y_pos: srdiag/bpm/c09-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C09-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C09-07/x_pos - y_pos: BPM_C09-07/y_pos + x_pos: srdiag/bpm/c09-07/SA_HPosition + y_pos: srdiag/bpm/c09-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C09-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C09-08/x_pos - y_pos: BPM_C09-08/y_pos + x_pos: srdiag/bpm/c09-08/SA_HPosition + y_pos: srdiag/bpm/c09-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C09-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C09-09/x_pos - y_pos: BPM_C09-09/y_pos + x_pos: srdiag/bpm/c09-09/SA_HPosition + y_pos: srdiag/bpm/c09-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C09-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C09-10/x_pos - y_pos: BPM_C09-10/y_pos + x_pos: srdiag/bpm/c09-10/SA_HPosition + y_pos: srdiag/bpm/c09-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C10-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C10-01/x_pos - y_pos: BPM_C10-01/y_pos + x_pos: srdiag/bpm/c10-01/SA_HPosition + y_pos: srdiag/bpm/c10-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C10-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C10-02/x_pos - y_pos: BPM_C10-02/y_pos + x_pos: srdiag/bpm/c10-02/SA_HPosition + y_pos: srdiag/bpm/c10-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C10-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C10-03/x_pos - y_pos: BPM_C10-03/y_pos + x_pos: srdiag/bpm/c10-03/SA_HPosition + y_pos: srdiag/bpm/c10-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C10-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C10-04/x_pos - y_pos: BPM_C10-04/y_pos + x_pos: srdiag/bpm/c10-04/SA_HPosition + y_pos: srdiag/bpm/c10-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C10-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C10-05/x_pos - y_pos: BPM_C10-05/y_pos + x_pos: srdiag/bpm/c10-05/SA_HPosition + y_pos: srdiag/bpm/c10-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C10-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C10-06/x_pos - y_pos: BPM_C10-06/y_pos + x_pos: srdiag/bpm/c10-06/SA_HPosition + y_pos: srdiag/bpm/c10-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C10-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C10-07/x_pos - y_pos: BPM_C10-07/y_pos + x_pos: srdiag/bpm/c10-07/SA_HPosition + y_pos: srdiag/bpm/c10-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C10-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C10-08/x_pos - y_pos: BPM_C10-08/y_pos + x_pos: srdiag/bpm/c10-08/SA_HPosition + y_pos: srdiag/bpm/c10-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C10-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C10-09/x_pos - y_pos: BPM_C10-09/y_pos + x_pos: srdiag/bpm/c10-09/SA_HPosition + y_pos: srdiag/bpm/c10-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C10-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C10-10/x_pos - y_pos: BPM_C10-10/y_pos + x_pos: srdiag/bpm/c10-10/SA_HPosition + y_pos: srdiag/bpm/c10-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C11-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C11-01/x_pos - y_pos: BPM_C11-01/y_pos + x_pos: srdiag/bpm/c11-01/SA_HPosition + y_pos: srdiag/bpm/c11-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C11-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C11-02/x_pos - y_pos: BPM_C11-02/y_pos + x_pos: srdiag/bpm/c11-02/SA_HPosition + y_pos: srdiag/bpm/c11-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C11-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C11-03/x_pos - y_pos: BPM_C11-03/y_pos + x_pos: srdiag/bpm/c11-03/SA_HPosition + y_pos: srdiag/bpm/c11-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C11-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C11-04/x_pos - y_pos: BPM_C11-04/y_pos + x_pos: srdiag/bpm/c11-04/SA_HPosition + y_pos: srdiag/bpm/c11-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C11-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C11-05/x_pos - y_pos: BPM_C11-05/y_pos + x_pos: srdiag/bpm/c11-05/SA_HPosition + y_pos: srdiag/bpm/c11-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C11-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C11-06/x_pos - y_pos: BPM_C11-06/y_pos + x_pos: srdiag/bpm/c11-06/SA_HPosition + y_pos: srdiag/bpm/c11-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C11-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C11-07/x_pos - y_pos: BPM_C11-07/y_pos + x_pos: srdiag/bpm/c11-07/SA_HPosition + y_pos: srdiag/bpm/c11-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C11-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C11-08/x_pos - y_pos: BPM_C11-08/y_pos + x_pos: srdiag/bpm/c11-08/SA_HPosition + y_pos: srdiag/bpm/c11-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C11-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C11-09/x_pos - y_pos: BPM_C11-09/y_pos + x_pos: srdiag/bpm/c11-09/SA_HPosition + y_pos: srdiag/bpm/c11-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C11-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C11-10/x_pos - y_pos: BPM_C11-10/y_pos + x_pos: srdiag/bpm/c11-10/SA_HPosition + y_pos: srdiag/bpm/c11-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C12-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C12-01/x_pos - y_pos: BPM_C12-01/y_pos + x_pos: srdiag/bpm/c12-01/SA_HPosition + y_pos: srdiag/bpm/c12-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C12-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C12-02/x_pos - y_pos: BPM_C12-02/y_pos + x_pos: srdiag/bpm/c12-02/SA_HPosition + y_pos: srdiag/bpm/c12-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C12-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C12-03/x_pos - y_pos: BPM_C12-03/y_pos + x_pos: srdiag/bpm/c12-03/SA_HPosition + y_pos: srdiag/bpm/c12-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C12-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C12-04/x_pos - y_pos: BPM_C12-04/y_pos + x_pos: srdiag/bpm/c12-04/SA_HPosition + y_pos: srdiag/bpm/c12-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C12-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C12-05/x_pos - y_pos: BPM_C12-05/y_pos + x_pos: srdiag/bpm/c12-05/SA_HPosition + y_pos: srdiag/bpm/c12-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C12-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C12-06/x_pos - y_pos: BPM_C12-06/y_pos + x_pos: srdiag/bpm/c12-06/SA_HPosition + y_pos: srdiag/bpm/c12-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C12-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C12-07/x_pos - y_pos: BPM_C12-07/y_pos + x_pos: srdiag/bpm/c12-07/SA_HPosition + y_pos: srdiag/bpm/c12-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C12-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C12-08/x_pos - y_pos: BPM_C12-08/y_pos + x_pos: srdiag/bpm/c12-08/SA_HPosition + y_pos: srdiag/bpm/c12-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C12-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C12-09/x_pos - y_pos: BPM_C12-09/y_pos + x_pos: srdiag/bpm/c12-09/SA_HPosition + y_pos: srdiag/bpm/c12-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C12-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C12-10/x_pos - y_pos: BPM_C12-10/y_pos + x_pos: srdiag/bpm/c12-10/SA_HPosition + y_pos: srdiag/bpm/c12-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C13-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C13-01/x_pos - y_pos: BPM_C13-01/y_pos + x_pos: srdiag/bpm/c13-01/SA_HPosition + y_pos: srdiag/bpm/c13-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C13-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C13-02/x_pos - y_pos: BPM_C13-02/y_pos + x_pos: srdiag/bpm/c13-02/SA_HPosition + y_pos: srdiag/bpm/c13-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C13-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C13-03/x_pos - y_pos: BPM_C13-03/y_pos + x_pos: srdiag/bpm/c13-03/SA_HPosition + y_pos: srdiag/bpm/c13-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C13-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C13-04/x_pos - y_pos: BPM_C13-04/y_pos + x_pos: srdiag/bpm/c13-04/SA_HPosition + y_pos: srdiag/bpm/c13-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C13-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C13-05/x_pos - y_pos: BPM_C13-05/y_pos + x_pos: srdiag/bpm/c13-05/SA_HPosition + y_pos: srdiag/bpm/c13-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C13-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C13-06/x_pos - y_pos: BPM_C13-06/y_pos + x_pos: srdiag/bpm/c13-06/SA_HPosition + y_pos: srdiag/bpm/c13-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C13-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C13-07/x_pos - y_pos: BPM_C13-07/y_pos + x_pos: srdiag/bpm/c13-07/SA_HPosition + y_pos: srdiag/bpm/c13-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C13-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C13-08/x_pos - y_pos: BPM_C13-08/y_pos + x_pos: srdiag/bpm/c13-08/SA_HPosition + y_pos: srdiag/bpm/c13-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C13-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C13-09/x_pos - y_pos: BPM_C13-09/y_pos + x_pos: srdiag/bpm/c13-09/SA_HPosition + y_pos: srdiag/bpm/c13-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C13-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C13-10/x_pos - y_pos: BPM_C13-10/y_pos + x_pos: srdiag/bpm/c13-10/SA_HPosition + y_pos: srdiag/bpm/c13-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C14-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C14-01/x_pos - y_pos: BPM_C14-01/y_pos + x_pos: srdiag/bpm/c14-01/SA_HPosition + y_pos: srdiag/bpm/c14-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C14-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C14-02/x_pos - y_pos: BPM_C14-02/y_pos + x_pos: srdiag/bpm/c14-02/SA_HPosition + y_pos: srdiag/bpm/c14-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C14-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C14-03/x_pos - y_pos: BPM_C14-03/y_pos + x_pos: srdiag/bpm/c14-03/SA_HPosition + y_pos: srdiag/bpm/c14-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C14-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C14-04/x_pos - y_pos: BPM_C14-04/y_pos + x_pos: srdiag/bpm/c14-04/SA_HPosition + y_pos: srdiag/bpm/c14-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C14-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C14-05/x_pos - y_pos: BPM_C14-05/y_pos + x_pos: srdiag/bpm/c14-05/SA_HPosition + y_pos: srdiag/bpm/c14-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C14-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C14-06/x_pos - y_pos: BPM_C14-06/y_pos + x_pos: srdiag/bpm/c14-06/SA_HPosition + y_pos: srdiag/bpm/c14-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C14-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C14-07/x_pos - y_pos: BPM_C14-07/y_pos + x_pos: srdiag/bpm/c14-07/SA_HPosition + y_pos: srdiag/bpm/c14-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C14-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C14-08/x_pos - y_pos: BPM_C14-08/y_pos + x_pos: srdiag/bpm/c14-08/SA_HPosition + y_pos: srdiag/bpm/c14-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C14-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C14-09/x_pos - y_pos: BPM_C14-09/y_pos + x_pos: srdiag/bpm/c14-09/SA_HPosition + y_pos: srdiag/bpm/c14-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C14-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C14-10/x_pos - y_pos: BPM_C14-10/y_pos + x_pos: srdiag/bpm/c14-10/SA_HPosition + y_pos: srdiag/bpm/c14-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C15-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C15-01/x_pos - y_pos: BPM_C15-01/y_pos + x_pos: srdiag/bpm/c15-01/SA_HPosition + y_pos: srdiag/bpm/c15-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C15-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C15-02/x_pos - y_pos: BPM_C15-02/y_pos + x_pos: srdiag/bpm/c15-02/SA_HPosition + y_pos: srdiag/bpm/c15-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C15-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C15-03/x_pos - y_pos: BPM_C15-03/y_pos + x_pos: srdiag/bpm/c15-03/SA_HPosition + y_pos: srdiag/bpm/c15-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C15-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C15-04/x_pos - y_pos: BPM_C15-04/y_pos + x_pos: srdiag/bpm/c15-04/SA_HPosition + y_pos: srdiag/bpm/c15-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C15-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C15-05/x_pos - y_pos: BPM_C15-05/y_pos + x_pos: srdiag/bpm/c15-05/SA_HPosition + y_pos: srdiag/bpm/c15-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C15-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C15-06/x_pos - y_pos: BPM_C15-06/y_pos + x_pos: srdiag/bpm/c15-06/SA_HPosition + y_pos: srdiag/bpm/c15-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C15-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C15-07/x_pos - y_pos: BPM_C15-07/y_pos + x_pos: srdiag/bpm/c15-07/SA_HPosition + y_pos: srdiag/bpm/c15-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C15-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C15-08/x_pos - y_pos: BPM_C15-08/y_pos + x_pos: srdiag/bpm/c15-08/SA_HPosition + y_pos: srdiag/bpm/c15-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C15-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C15-09/x_pos - y_pos: BPM_C15-09/y_pos + x_pos: srdiag/bpm/c15-09/SA_HPosition + y_pos: srdiag/bpm/c15-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C15-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C15-10/x_pos - y_pos: BPM_C15-10/y_pos + x_pos: srdiag/bpm/c15-10/SA_HPosition + y_pos: srdiag/bpm/c15-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C16-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C16-01/x_pos - y_pos: BPM_C16-01/y_pos + x_pos: srdiag/bpm/c16-01/SA_HPosition + y_pos: srdiag/bpm/c16-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C16-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C16-02/x_pos - y_pos: BPM_C16-02/y_pos + x_pos: srdiag/bpm/c16-02/SA_HPosition + y_pos: srdiag/bpm/c16-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C16-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C16-03/x_pos - y_pos: BPM_C16-03/y_pos + x_pos: srdiag/bpm/c16-03/SA_HPosition + y_pos: srdiag/bpm/c16-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C16-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C16-04/x_pos - y_pos: BPM_C16-04/y_pos + x_pos: srdiag/bpm/c16-04/SA_HPosition + y_pos: srdiag/bpm/c16-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C16-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C16-05/x_pos - y_pos: BPM_C16-05/y_pos + x_pos: srdiag/bpm/c16-05/SA_HPosition + y_pos: srdiag/bpm/c16-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C16-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C16-06/x_pos - y_pos: BPM_C16-06/y_pos + x_pos: srdiag/bpm/c16-06/SA_HPosition + y_pos: srdiag/bpm/c16-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C16-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C16-07/x_pos - y_pos: BPM_C16-07/y_pos + x_pos: srdiag/bpm/c16-07/SA_HPosition + y_pos: srdiag/bpm/c16-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C16-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C16-08/x_pos - y_pos: BPM_C16-08/y_pos + x_pos: srdiag/bpm/c16-08/SA_HPosition + y_pos: srdiag/bpm/c16-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C16-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C16-09/x_pos - y_pos: BPM_C16-09/y_pos + x_pos: srdiag/bpm/c16-09/SA_HPosition + y_pos: srdiag/bpm/c16-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C16-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C16-10/x_pos - y_pos: BPM_C16-10/y_pos + x_pos: srdiag/bpm/c16-10/SA_HPosition + y_pos: srdiag/bpm/c16-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C17-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C17-01/x_pos - y_pos: BPM_C17-01/y_pos + x_pos: srdiag/bpm/c17-01/SA_HPosition + y_pos: srdiag/bpm/c17-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C17-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C17-02/x_pos - y_pos: BPM_C17-02/y_pos + x_pos: srdiag/bpm/c17-02/SA_HPosition + y_pos: srdiag/bpm/c17-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C17-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C17-03/x_pos - y_pos: BPM_C17-03/y_pos + x_pos: srdiag/bpm/c17-03/SA_HPosition + y_pos: srdiag/bpm/c17-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C17-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C17-04/x_pos - y_pos: BPM_C17-04/y_pos + x_pos: srdiag/bpm/c17-04/SA_HPosition + y_pos: srdiag/bpm/c17-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C17-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C17-05/x_pos - y_pos: BPM_C17-05/y_pos + x_pos: srdiag/bpm/c17-05/SA_HPosition + y_pos: srdiag/bpm/c17-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C17-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C17-06/x_pos - y_pos: BPM_C17-06/y_pos + x_pos: srdiag/bpm/c17-06/SA_HPosition + y_pos: srdiag/bpm/c17-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C17-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C17-07/x_pos - y_pos: BPM_C17-07/y_pos + x_pos: srdiag/bpm/c17-07/SA_HPosition + y_pos: srdiag/bpm/c17-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C17-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C17-08/x_pos - y_pos: BPM_C17-08/y_pos + x_pos: srdiag/bpm/c17-08/SA_HPosition + y_pos: srdiag/bpm/c17-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C17-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C17-09/x_pos - y_pos: BPM_C17-09/y_pos + x_pos: srdiag/bpm/c17-09/SA_HPosition + y_pos: srdiag/bpm/c17-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C17-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C17-10/x_pos - y_pos: BPM_C17-10/y_pos + x_pos: srdiag/bpm/c17-10/SA_HPosition + y_pos: srdiag/bpm/c17-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C18-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C18-01/x_pos - y_pos: BPM_C18-01/y_pos + x_pos: srdiag/bpm/c18-01/SA_HPosition + y_pos: srdiag/bpm/c18-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C18-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C18-02/x_pos - y_pos: BPM_C18-02/y_pos + x_pos: srdiag/bpm/c18-02/SA_HPosition + y_pos: srdiag/bpm/c18-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C18-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C18-03/x_pos - y_pos: BPM_C18-03/y_pos + x_pos: srdiag/bpm/c18-03/SA_HPosition + y_pos: srdiag/bpm/c18-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C18-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C18-04/x_pos - y_pos: BPM_C18-04/y_pos + x_pos: srdiag/bpm/c18-04/SA_HPosition + y_pos: srdiag/bpm/c18-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C18-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C18-05/x_pos - y_pos: BPM_C18-05/y_pos + x_pos: srdiag/bpm/c18-05/SA_HPosition + y_pos: srdiag/bpm/c18-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C18-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C18-06/x_pos - y_pos: BPM_C18-06/y_pos + x_pos: srdiag/bpm/c18-06/SA_HPosition + y_pos: srdiag/bpm/c18-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C18-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C18-07/x_pos - y_pos: BPM_C18-07/y_pos + x_pos: srdiag/bpm/c18-07/SA_HPosition + y_pos: srdiag/bpm/c18-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C18-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C18-08/x_pos - y_pos: BPM_C18-08/y_pos + x_pos: srdiag/bpm/c18-08/SA_HPosition + y_pos: srdiag/bpm/c18-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C18-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C18-09/x_pos - y_pos: BPM_C18-09/y_pos + x_pos: srdiag/bpm/c18-09/SA_HPosition + y_pos: srdiag/bpm/c18-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C18-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C18-10/x_pos - y_pos: BPM_C18-10/y_pos + x_pos: srdiag/bpm/c18-10/SA_HPosition + y_pos: srdiag/bpm/c18-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C19-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C19-01/x_pos - y_pos: BPM_C19-01/y_pos + x_pos: srdiag/bpm/c19-01/SA_HPosition + y_pos: srdiag/bpm/c19-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C19-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C19-02/x_pos - y_pos: BPM_C19-02/y_pos + x_pos: srdiag/bpm/c19-02/SA_HPosition + y_pos: srdiag/bpm/c19-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C19-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C19-03/x_pos - y_pos: BPM_C19-03/y_pos + x_pos: srdiag/bpm/c19-03/SA_HPosition + y_pos: srdiag/bpm/c19-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C19-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C19-04/x_pos - y_pos: BPM_C19-04/y_pos + x_pos: srdiag/bpm/c19-04/SA_HPosition + y_pos: srdiag/bpm/c19-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C19-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C19-05/x_pos - y_pos: BPM_C19-05/y_pos + x_pos: srdiag/bpm/c19-05/SA_HPosition + y_pos: srdiag/bpm/c19-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C19-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C19-06/x_pos - y_pos: BPM_C19-06/y_pos + x_pos: srdiag/bpm/c19-06/SA_HPosition + y_pos: srdiag/bpm/c19-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C19-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C19-07/x_pos - y_pos: BPM_C19-07/y_pos + x_pos: srdiag/bpm/c19-07/SA_HPosition + y_pos: srdiag/bpm/c19-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C19-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C19-08/x_pos - y_pos: BPM_C19-08/y_pos + x_pos: srdiag/bpm/c19-08/SA_HPosition + y_pos: srdiag/bpm/c19-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C19-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C19-09/x_pos - y_pos: BPM_C19-09/y_pos + x_pos: srdiag/bpm/c19-09/SA_HPosition + y_pos: srdiag/bpm/c19-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C19-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C19-10/x_pos - y_pos: BPM_C19-10/y_pos + x_pos: srdiag/bpm/c19-10/SA_HPosition + y_pos: srdiag/bpm/c19-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C20-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C20-01/x_pos - y_pos: BPM_C20-01/y_pos + x_pos: srdiag/bpm/c20-01/SA_HPosition + y_pos: srdiag/bpm/c20-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C20-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C20-02/x_pos - y_pos: BPM_C20-02/y_pos + x_pos: srdiag/bpm/c20-02/SA_HPosition + y_pos: srdiag/bpm/c20-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C20-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C20-03/x_pos - y_pos: BPM_C20-03/y_pos + x_pos: srdiag/bpm/c20-03/SA_HPosition + y_pos: srdiag/bpm/c20-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C20-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C20-04/x_pos - y_pos: BPM_C20-04/y_pos + x_pos: srdiag/bpm/c20-04/SA_HPosition + y_pos: srdiag/bpm/c20-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C20-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C20-05/x_pos - y_pos: BPM_C20-05/y_pos + x_pos: srdiag/bpm/c20-05/SA_HPosition + y_pos: srdiag/bpm/c20-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C20-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C20-06/x_pos - y_pos: BPM_C20-06/y_pos + x_pos: srdiag/bpm/c20-06/SA_HPosition + y_pos: srdiag/bpm/c20-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C20-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C20-07/x_pos - y_pos: BPM_C20-07/y_pos + x_pos: srdiag/bpm/c20-07/SA_HPosition + y_pos: srdiag/bpm/c20-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C20-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C20-08/x_pos - y_pos: BPM_C20-08/y_pos + x_pos: srdiag/bpm/c20-08/SA_HPosition + y_pos: srdiag/bpm/c20-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C20-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C20-09/x_pos - y_pos: BPM_C20-09/y_pos + x_pos: srdiag/bpm/c20-09/SA_HPosition + y_pos: srdiag/bpm/c20-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C20-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C20-10/x_pos - y_pos: BPM_C20-10/y_pos + x_pos: srdiag/bpm/c20-10/SA_HPosition + y_pos: srdiag/bpm/c20-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C21-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C21-01/x_pos - y_pos: BPM_C21-01/y_pos + x_pos: srdiag/bpm/c21-01/SA_HPosition + y_pos: srdiag/bpm/c21-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C21-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C21-02/x_pos - y_pos: BPM_C21-02/y_pos + x_pos: srdiag/bpm/c21-02/SA_HPosition + y_pos: srdiag/bpm/c21-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C21-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C21-03/x_pos - y_pos: BPM_C21-03/y_pos + x_pos: srdiag/bpm/c21-03/SA_HPosition + y_pos: srdiag/bpm/c21-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C21-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C21-04/x_pos - y_pos: BPM_C21-04/y_pos + x_pos: srdiag/bpm/c21-04/SA_HPosition + y_pos: srdiag/bpm/c21-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C21-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C21-05/x_pos - y_pos: BPM_C21-05/y_pos + x_pos: srdiag/bpm/c21-05/SA_HPosition + y_pos: srdiag/bpm/c21-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C21-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C21-06/x_pos - y_pos: BPM_C21-06/y_pos + x_pos: srdiag/bpm/c21-06/SA_HPosition + y_pos: srdiag/bpm/c21-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C21-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C21-07/x_pos - y_pos: BPM_C21-07/y_pos + x_pos: srdiag/bpm/c21-07/SA_HPosition + y_pos: srdiag/bpm/c21-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C21-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C21-08/x_pos - y_pos: BPM_C21-08/y_pos + x_pos: srdiag/bpm/c21-08/SA_HPosition + y_pos: srdiag/bpm/c21-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C21-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C21-09/x_pos - y_pos: BPM_C21-09/y_pos + x_pos: srdiag/bpm/c21-09/SA_HPosition + y_pos: srdiag/bpm/c21-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C21-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C21-10/x_pos - y_pos: BPM_C21-10/y_pos + x_pos: srdiag/bpm/c21-10/SA_HPosition + y_pos: srdiag/bpm/c21-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C22-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C22-01/x_pos - y_pos: BPM_C22-01/y_pos + x_pos: srdiag/bpm/c22-01/SA_HPosition + y_pos: srdiag/bpm/c22-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C22-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C22-02/x_pos - y_pos: BPM_C22-02/y_pos + x_pos: srdiag/bpm/c22-02/SA_HPosition + y_pos: srdiag/bpm/c22-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C22-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C22-03/x_pos - y_pos: BPM_C22-03/y_pos + x_pos: srdiag/bpm/c22-03/SA_HPosition + y_pos: srdiag/bpm/c22-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C22-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C22-04/x_pos - y_pos: BPM_C22-04/y_pos + x_pos: srdiag/bpm/c22-04/SA_HPosition + y_pos: srdiag/bpm/c22-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C22-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C22-05/x_pos - y_pos: BPM_C22-05/y_pos + x_pos: srdiag/bpm/c22-05/SA_HPosition + y_pos: srdiag/bpm/c22-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C22-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C22-06/x_pos - y_pos: BPM_C22-06/y_pos + x_pos: srdiag/bpm/c22-06/SA_HPosition + y_pos: srdiag/bpm/c22-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C22-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C22-07/x_pos - y_pos: BPM_C22-07/y_pos + x_pos: srdiag/bpm/c22-07/SA_HPosition + y_pos: srdiag/bpm/c22-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C22-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C22-08/x_pos - y_pos: BPM_C22-08/y_pos + x_pos: srdiag/bpm/c22-08/SA_HPosition + y_pos: srdiag/bpm/c22-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C22-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C22-09/x_pos - y_pos: BPM_C22-09/y_pos + x_pos: srdiag/bpm/c22-09/SA_HPosition + y_pos: srdiag/bpm/c22-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C22-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C22-10/x_pos - y_pos: BPM_C22-10/y_pos + x_pos: srdiag/bpm/c22-10/SA_HPosition + y_pos: srdiag/bpm/c22-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C23-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C23-01/x_pos - y_pos: BPM_C23-01/y_pos + x_pos: srdiag/bpm/c23-01/SA_HPosition + y_pos: srdiag/bpm/c23-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C23-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C23-02/x_pos - y_pos: BPM_C23-02/y_pos + x_pos: srdiag/bpm/c23-02/SA_HPosition + y_pos: srdiag/bpm/c23-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C23-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C23-03/x_pos - y_pos: BPM_C23-03/y_pos + x_pos: srdiag/bpm/c23-03/SA_HPosition + y_pos: srdiag/bpm/c23-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C23-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C23-04/x_pos - y_pos: BPM_C23-04/y_pos + x_pos: srdiag/bpm/c23-04/SA_HPosition + y_pos: srdiag/bpm/c23-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C23-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C23-05/x_pos - y_pos: BPM_C23-05/y_pos + x_pos: srdiag/bpm/c23-05/SA_HPosition + y_pos: srdiag/bpm/c23-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C23-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C23-06/x_pos - y_pos: BPM_C23-06/y_pos + x_pos: srdiag/bpm/c23-06/SA_HPosition + y_pos: srdiag/bpm/c23-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C23-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C23-07/x_pos - y_pos: BPM_C23-07/y_pos + x_pos: srdiag/bpm/c23-07/SA_HPosition + y_pos: srdiag/bpm/c23-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C23-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C23-08/x_pos - y_pos: BPM_C23-08/y_pos + x_pos: srdiag/bpm/c23-08/SA_HPosition + y_pos: srdiag/bpm/c23-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C23-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C23-09/x_pos - y_pos: BPM_C23-09/y_pos + x_pos: srdiag/bpm/c23-09/SA_HPosition + y_pos: srdiag/bpm/c23-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C23-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C23-10/x_pos - y_pos: BPM_C23-10/y_pos + x_pos: srdiag/bpm/c23-10/SA_HPosition + y_pos: srdiag/bpm/c23-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C24-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C24-01/x_pos - y_pos: BPM_C24-01/y_pos + x_pos: srdiag/bpm/c24-01/SA_HPosition + y_pos: srdiag/bpm/c24-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C24-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C24-02/x_pos - y_pos: BPM_C24-02/y_pos + x_pos: srdiag/bpm/c24-02/SA_HPosition + y_pos: srdiag/bpm/c24-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C24-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C24-03/x_pos - y_pos: BPM_C24-03/y_pos + x_pos: srdiag/bpm/c24-03/SA_HPosition + y_pos: srdiag/bpm/c24-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C24-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C24-04/x_pos - y_pos: BPM_C24-04/y_pos + x_pos: srdiag/bpm/c24-04/SA_HPosition + y_pos: srdiag/bpm/c24-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C24-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C24-05/x_pos - y_pos: BPM_C24-05/y_pos + x_pos: srdiag/bpm/c24-05/SA_HPosition + y_pos: srdiag/bpm/c24-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C24-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C24-06/x_pos - y_pos: BPM_C24-06/y_pos + x_pos: srdiag/bpm/c24-06/SA_HPosition + y_pos: srdiag/bpm/c24-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C24-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C24-07/x_pos - y_pos: BPM_C24-07/y_pos + x_pos: srdiag/bpm/c24-07/SA_HPosition + y_pos: srdiag/bpm/c24-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C24-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C24-08/x_pos - y_pos: BPM_C24-08/y_pos + x_pos: srdiag/bpm/c24-08/SA_HPosition + y_pos: srdiag/bpm/c24-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C24-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C24-09/x_pos - y_pos: BPM_C24-09/y_pos + x_pos: srdiag/bpm/c24-09/SA_HPosition + y_pos: srdiag/bpm/c24-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C24-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C24-10/x_pos - y_pos: BPM_C24-10/y_pos + x_pos: srdiag/bpm/c24-10/SA_HPosition + y_pos: srdiag/bpm/c24-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C25-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C25-01/x_pos - y_pos: BPM_C25-01/y_pos + x_pos: srdiag/bpm/c25-01/SA_HPosition + y_pos: srdiag/bpm/c25-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C25-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C25-02/x_pos - y_pos: BPM_C25-02/y_pos + x_pos: srdiag/bpm/c25-02/SA_HPosition + y_pos: srdiag/bpm/c25-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C25-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C25-03/x_pos - y_pos: BPM_C25-03/y_pos + x_pos: srdiag/bpm/c25-03/SA_HPosition + y_pos: srdiag/bpm/c25-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C25-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C25-04/x_pos - y_pos: BPM_C25-04/y_pos + x_pos: srdiag/bpm/c25-04/SA_HPosition + y_pos: srdiag/bpm/c25-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C25-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C25-05/x_pos - y_pos: BPM_C25-05/y_pos + x_pos: srdiag/bpm/c25-05/SA_HPosition + y_pos: srdiag/bpm/c25-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C25-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C25-06/x_pos - y_pos: BPM_C25-06/y_pos + x_pos: srdiag/bpm/c25-06/SA_HPosition + y_pos: srdiag/bpm/c25-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C25-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C25-07/x_pos - y_pos: BPM_C25-07/y_pos + x_pos: srdiag/bpm/c25-07/SA_HPosition + y_pos: srdiag/bpm/c25-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C25-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C25-08/x_pos - y_pos: BPM_C25-08/y_pos + x_pos: srdiag/bpm/c25-08/SA_HPosition + y_pos: srdiag/bpm/c25-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C25-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C25-09/x_pos - y_pos: BPM_C25-09/y_pos + x_pos: srdiag/bpm/c25-09/SA_HPosition + y_pos: srdiag/bpm/c25-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C25-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C25-10/x_pos - y_pos: BPM_C25-10/y_pos + x_pos: srdiag/bpm/c25-10/SA_HPosition + y_pos: srdiag/bpm/c25-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C26-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C26-01/x_pos - y_pos: BPM_C26-01/y_pos + x_pos: srdiag/bpm/c26-01/SA_HPosition + y_pos: srdiag/bpm/c26-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C26-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C26-02/x_pos - y_pos: BPM_C26-02/y_pos + x_pos: srdiag/bpm/c26-02/SA_HPosition + y_pos: srdiag/bpm/c26-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C26-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C26-03/x_pos - y_pos: BPM_C26-03/y_pos + x_pos: srdiag/bpm/c26-03/SA_HPosition + y_pos: srdiag/bpm/c26-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C26-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C26-04/x_pos - y_pos: BPM_C26-04/y_pos + x_pos: srdiag/bpm/c26-04/SA_HPosition + y_pos: srdiag/bpm/c26-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C26-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C26-05/x_pos - y_pos: BPM_C26-05/y_pos + x_pos: srdiag/bpm/c26-05/SA_HPosition + y_pos: srdiag/bpm/c26-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C26-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C26-06/x_pos - y_pos: BPM_C26-06/y_pos + x_pos: srdiag/bpm/c26-06/SA_HPosition + y_pos: srdiag/bpm/c26-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C26-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C26-07/x_pos - y_pos: BPM_C26-07/y_pos + x_pos: srdiag/bpm/c26-07/SA_HPosition + y_pos: srdiag/bpm/c26-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C26-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C26-08/x_pos - y_pos: BPM_C26-08/y_pos + x_pos: srdiag/bpm/c26-08/SA_HPosition + y_pos: srdiag/bpm/c26-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C26-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C26-09/x_pos - y_pos: BPM_C26-09/y_pos + x_pos: srdiag/bpm/c26-09/SA_HPosition + y_pos: srdiag/bpm/c26-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C26-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C26-10/x_pos - y_pos: BPM_C26-10/y_pos + x_pos: srdiag/bpm/c26-10/SA_HPosition + y_pos: srdiag/bpm/c26-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C27-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C27-01/x_pos - y_pos: BPM_C27-01/y_pos + x_pos: srdiag/bpm/c27-01/SA_HPosition + y_pos: srdiag/bpm/c27-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C27-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C27-02/x_pos - y_pos: BPM_C27-02/y_pos + x_pos: srdiag/bpm/c27-02/SA_HPosition + y_pos: srdiag/bpm/c27-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C27-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C27-03/x_pos - y_pos: BPM_C27-03/y_pos + x_pos: srdiag/bpm/c27-03/SA_HPosition + y_pos: srdiag/bpm/c27-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C27-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C27-04/x_pos - y_pos: BPM_C27-04/y_pos + x_pos: srdiag/bpm/c27-04/SA_HPosition + y_pos: srdiag/bpm/c27-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C27-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C27-05/x_pos - y_pos: BPM_C27-05/y_pos + x_pos: srdiag/bpm/c27-05/SA_HPosition + y_pos: srdiag/bpm/c27-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C27-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C27-06/x_pos - y_pos: BPM_C27-06/y_pos + x_pos: srdiag/bpm/c27-06/SA_HPosition + y_pos: srdiag/bpm/c27-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C27-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C27-07/x_pos - y_pos: BPM_C27-07/y_pos + x_pos: srdiag/bpm/c27-07/SA_HPosition + y_pos: srdiag/bpm/c27-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C27-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C27-08/x_pos - y_pos: BPM_C27-08/y_pos + x_pos: srdiag/bpm/c27-08/SA_HPosition + y_pos: srdiag/bpm/c27-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C27-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C27-09/x_pos - y_pos: BPM_C27-09/y_pos + x_pos: srdiag/bpm/c27-09/SA_HPosition + y_pos: srdiag/bpm/c27-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C27-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C27-10/x_pos - y_pos: BPM_C27-10/y_pos + x_pos: srdiag/bpm/c27-10/SA_HPosition + y_pos: srdiag/bpm/c27-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C28-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C28-01/x_pos - y_pos: BPM_C28-01/y_pos + x_pos: srdiag/bpm/c28-01/SA_HPosition + y_pos: srdiag/bpm/c28-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C28-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C28-02/x_pos - y_pos: BPM_C28-02/y_pos + x_pos: srdiag/bpm/c28-02/SA_HPosition + y_pos: srdiag/bpm/c28-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C28-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C28-03/x_pos - y_pos: BPM_C28-03/y_pos + x_pos: srdiag/bpm/c28-03/SA_HPosition + y_pos: srdiag/bpm/c28-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C28-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C28-04/x_pos - y_pos: BPM_C28-04/y_pos + x_pos: srdiag/bpm/c28-04/SA_HPosition + y_pos: srdiag/bpm/c28-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C28-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C28-05/x_pos - y_pos: BPM_C28-05/y_pos + x_pos: srdiag/bpm/c28-05/SA_HPosition + y_pos: srdiag/bpm/c28-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C28-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C28-06/x_pos - y_pos: BPM_C28-06/y_pos + x_pos: srdiag/bpm/c28-06/SA_HPosition + y_pos: srdiag/bpm/c28-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C28-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C28-07/x_pos - y_pos: BPM_C28-07/y_pos + x_pos: srdiag/bpm/c28-07/SA_HPosition + y_pos: srdiag/bpm/c28-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C28-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C28-08/x_pos - y_pos: BPM_C28-08/y_pos + x_pos: srdiag/bpm/c28-08/SA_HPosition + y_pos: srdiag/bpm/c28-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C28-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C28-09/x_pos - y_pos: BPM_C28-09/y_pos + x_pos: srdiag/bpm/c28-09/SA_HPosition + y_pos: srdiag/bpm/c28-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C28-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C28-10/x_pos - y_pos: BPM_C28-10/y_pos + x_pos: srdiag/bpm/c28-10/SA_HPosition + y_pos: srdiag/bpm/c28-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C29-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C29-01/x_pos - y_pos: BPM_C29-01/y_pos + x_pos: srdiag/bpm/c29-01/SA_HPosition + y_pos: srdiag/bpm/c29-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C29-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C29-02/x_pos - y_pos: BPM_C29-02/y_pos + x_pos: srdiag/bpm/c29-02/SA_HPosition + y_pos: srdiag/bpm/c29-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C29-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C29-03/x_pos - y_pos: BPM_C29-03/y_pos + x_pos: srdiag/bpm/c29-03/SA_HPosition + y_pos: srdiag/bpm/c29-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C29-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C29-04/x_pos - y_pos: BPM_C29-04/y_pos + x_pos: srdiag/bpm/c29-04/SA_HPosition + y_pos: srdiag/bpm/c29-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C29-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C29-05/x_pos - y_pos: BPM_C29-05/y_pos + x_pos: srdiag/bpm/c29-05/SA_HPosition + y_pos: srdiag/bpm/c29-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C29-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C29-06/x_pos - y_pos: BPM_C29-06/y_pos + x_pos: srdiag/bpm/c29-06/SA_HPosition + y_pos: srdiag/bpm/c29-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C29-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C29-07/x_pos - y_pos: BPM_C29-07/y_pos + x_pos: srdiag/bpm/c29-07/SA_HPosition + y_pos: srdiag/bpm/c29-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C29-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C29-08/x_pos - y_pos: BPM_C29-08/y_pos + x_pos: srdiag/bpm/c29-08/SA_HPosition + y_pos: srdiag/bpm/c29-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C29-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C29-09/x_pos - y_pos: BPM_C29-09/y_pos + x_pos: srdiag/bpm/c29-09/SA_HPosition + y_pos: srdiag/bpm/c29-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C29-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C29-10/x_pos - y_pos: BPM_C29-10/y_pos + x_pos: srdiag/bpm/c29-10/SA_HPosition + y_pos: srdiag/bpm/c29-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C30-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C30-01/x_pos - y_pos: BPM_C30-01/y_pos + x_pos: srdiag/bpm/c30-01/SA_HPosition + y_pos: srdiag/bpm/c30-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C30-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C30-02/x_pos - y_pos: BPM_C30-02/y_pos + x_pos: srdiag/bpm/c30-02/SA_HPosition + y_pos: srdiag/bpm/c30-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C30-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C30-03/x_pos - y_pos: BPM_C30-03/y_pos + x_pos: srdiag/bpm/c30-03/SA_HPosition + y_pos: srdiag/bpm/c30-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C30-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C30-04/x_pos - y_pos: BPM_C30-04/y_pos + x_pos: srdiag/bpm/c30-04/SA_HPosition + y_pos: srdiag/bpm/c30-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C30-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C30-05/x_pos - y_pos: BPM_C30-05/y_pos + x_pos: srdiag/bpm/c30-05/SA_HPosition + y_pos: srdiag/bpm/c30-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C30-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C30-06/x_pos - y_pos: BPM_C30-06/y_pos + x_pos: srdiag/bpm/c30-06/SA_HPosition + y_pos: srdiag/bpm/c30-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C30-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C30-07/x_pos - y_pos: BPM_C30-07/y_pos + x_pos: srdiag/bpm/c30-07/SA_HPosition + y_pos: srdiag/bpm/c30-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C30-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C30-08/x_pos - y_pos: BPM_C30-08/y_pos + x_pos: srdiag/bpm/c30-08/SA_HPosition + y_pos: srdiag/bpm/c30-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C30-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C30-09/x_pos - y_pos: BPM_C30-09/y_pos + x_pos: srdiag/bpm/c30-09/SA_HPosition + y_pos: srdiag/bpm/c30-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C30-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C30-10/x_pos - y_pos: BPM_C30-10/y_pos + x_pos: srdiag/bpm/c30-10/SA_HPosition + y_pos: srdiag/bpm/c30-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C31-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C31-01/x_pos - y_pos: BPM_C31-01/y_pos + x_pos: srdiag/bpm/c31-01/SA_HPosition + y_pos: srdiag/bpm/c31-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C31-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C31-02/x_pos - y_pos: BPM_C31-02/y_pos + x_pos: srdiag/bpm/c31-02/SA_HPosition + y_pos: srdiag/bpm/c31-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C31-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C31-03/x_pos - y_pos: BPM_C31-03/y_pos + x_pos: srdiag/bpm/c31-03/SA_HPosition + y_pos: srdiag/bpm/c31-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C31-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C31-04/x_pos - y_pos: BPM_C31-04/y_pos + x_pos: srdiag/bpm/c31-04/SA_HPosition + y_pos: srdiag/bpm/c31-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C31-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C31-05/x_pos - y_pos: BPM_C31-05/y_pos + x_pos: srdiag/bpm/c31-05/SA_HPosition + y_pos: srdiag/bpm/c31-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C31-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C31-06/x_pos - y_pos: BPM_C31-06/y_pos + x_pos: srdiag/bpm/c31-06/SA_HPosition + y_pos: srdiag/bpm/c31-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C31-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C31-07/x_pos - y_pos: BPM_C31-07/y_pos + x_pos: srdiag/bpm/c31-07/SA_HPosition + y_pos: srdiag/bpm/c31-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C31-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C31-08/x_pos - y_pos: BPM_C31-08/y_pos + x_pos: srdiag/bpm/c31-08/SA_HPosition + y_pos: srdiag/bpm/c31-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C31-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C31-09/x_pos - y_pos: BPM_C31-09/y_pos + x_pos: srdiag/bpm/c31-09/SA_HPosition + y_pos: srdiag/bpm/c31-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C31-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C31-10/x_pos - y_pos: BPM_C31-10/y_pos + x_pos: srdiag/bpm/c31-10/SA_HPosition + y_pos: srdiag/bpm/c31-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C32-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C32-01/x_pos - y_pos: BPM_C32-01/y_pos + x_pos: srdiag/bpm/c32-01/SA_HPosition + y_pos: srdiag/bpm/c32-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C32-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C32-02/x_pos - y_pos: BPM_C32-02/y_pos + x_pos: srdiag/bpm/c32-02/SA_HPosition + y_pos: srdiag/bpm/c32-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C32-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C32-03/x_pos - y_pos: BPM_C32-03/y_pos + x_pos: srdiag/bpm/c32-03/SA_HPosition + y_pos: srdiag/bpm/c32-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C32-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C32-04/x_pos - y_pos: BPM_C32-04/y_pos + x_pos: srdiag/bpm/c32-04/SA_HPosition + y_pos: srdiag/bpm/c32-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C32-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C32-05/x_pos - y_pos: BPM_C32-05/y_pos + x_pos: srdiag/bpm/c32-05/SA_HPosition + y_pos: srdiag/bpm/c32-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C32-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C32-06/x_pos - y_pos: BPM_C32-06/y_pos + x_pos: srdiag/bpm/c32-06/SA_HPosition + y_pos: srdiag/bpm/c32-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C32-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C32-07/x_pos - y_pos: BPM_C32-07/y_pos + x_pos: srdiag/bpm/c32-07/SA_HPosition + y_pos: srdiag/bpm/c32-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C32-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C32-08/x_pos - y_pos: BPM_C32-08/y_pos + x_pos: srdiag/bpm/c32-08/SA_HPosition + y_pos: srdiag/bpm/c32-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C32-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C32-09/x_pos - y_pos: BPM_C32-09/y_pos + x_pos: srdiag/bpm/c32-09/SA_HPosition + y_pos: srdiag/bpm/c32-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C32-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C32-10/x_pos - y_pos: BPM_C32-10/y_pos + x_pos: srdiag/bpm/c32-10/SA_HPosition + y_pos: srdiag/bpm/c32-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C01-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C01-01/x_pos - y_pos: BPM_C01-01/y_pos + x_pos: srdiag/bpm/c01-01/SA_HPosition + y_pos: srdiag/bpm/c01-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C01-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C01-02/x_pos - y_pos: BPM_C01-02/y_pos + x_pos: srdiag/bpm/c01-02/SA_HPosition + y_pos: srdiag/bpm/c01-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C01-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C01-03/x_pos - y_pos: BPM_C01-03/y_pos + x_pos: srdiag/bpm/c01-03/SA_HPosition + y_pos: srdiag/bpm/c01-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C01-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C01-04/x_pos - y_pos: BPM_C01-04/y_pos + x_pos: srdiag/bpm/c01-04/SA_HPosition + y_pos: srdiag/bpm/c01-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C01-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C01-05/x_pos - y_pos: BPM_C01-05/y_pos + x_pos: srdiag/bpm/c01-05/SA_HPosition + y_pos: srdiag/bpm/c01-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C01-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C01-06/x_pos - y_pos: BPM_C01-06/y_pos + x_pos: srdiag/bpm/c01-06/SA_HPosition + y_pos: srdiag/bpm/c01-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C01-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C01-07/x_pos - y_pos: BPM_C01-07/y_pos + x_pos: srdiag/bpm/c01-07/SA_HPosition + y_pos: srdiag/bpm/c01-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C01-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C01-08/x_pos - y_pos: BPM_C01-08/y_pos + x_pos: srdiag/bpm/c01-08/SA_HPosition + y_pos: srdiag/bpm/c01-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C01-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C01-09/x_pos - y_pos: BPM_C01-09/y_pos + x_pos: srdiag/bpm/c01-09/SA_HPosition + y_pos: srdiag/bpm/c01-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C01-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C01-10/x_pos - y_pos: BPM_C01-10/y_pos + x_pos: srdiag/bpm/c01-10/SA_HPosition + y_pos: srdiag/bpm/c01-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C02-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C02-01/x_pos - y_pos: BPM_C02-01/y_pos + x_pos: srdiag/bpm/c02-01/SA_HPosition + y_pos: srdiag/bpm/c02-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C02-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C02-02/x_pos - y_pos: BPM_C02-02/y_pos + x_pos: srdiag/bpm/c02-02/SA_HPosition + y_pos: srdiag/bpm/c02-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C02-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C02-03/x_pos - y_pos: BPM_C02-03/y_pos + x_pos: srdiag/bpm/c02-03/SA_HPosition + y_pos: srdiag/bpm/c02-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C02-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C02-04/x_pos - y_pos: BPM_C02-04/y_pos + x_pos: srdiag/bpm/c02-04/SA_HPosition + y_pos: srdiag/bpm/c02-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C02-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C02-05/x_pos - y_pos: BPM_C02-05/y_pos + x_pos: srdiag/bpm/c02-05/SA_HPosition + y_pos: srdiag/bpm/c02-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C02-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C02-06/x_pos - y_pos: BPM_C02-06/y_pos + x_pos: srdiag/bpm/c02-06/SA_HPosition + y_pos: srdiag/bpm/c02-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C02-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C02-07/x_pos - y_pos: BPM_C02-07/y_pos + x_pos: srdiag/bpm/c02-07/SA_HPosition + y_pos: srdiag/bpm/c02-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C02-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C02-08/x_pos - y_pos: BPM_C02-08/y_pos + x_pos: srdiag/bpm/c02-08/SA_HPosition + y_pos: srdiag/bpm/c02-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C02-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C02-09/x_pos - y_pos: BPM_C02-09/y_pos + x_pos: srdiag/bpm/c02-09/SA_HPosition + y_pos: srdiag/bpm/c02-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C02-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C02-10/x_pos - y_pos: BPM_C02-10/y_pos + x_pos: srdiag/bpm/c02-10/SA_HPosition + y_pos: srdiag/bpm/c02-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C03-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C03-01/x_pos - y_pos: BPM_C03-01/y_pos + x_pos: srdiag/bpm/c03-01/SA_HPosition + y_pos: srdiag/bpm/c03-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C03-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C03-02/x_pos - y_pos: BPM_C03-02/y_pos + x_pos: srdiag/bpm/c03-02/SA_HPosition + y_pos: srdiag/bpm/c03-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C03-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C03-03/x_pos - y_pos: BPM_C03-03/y_pos + x_pos: srdiag/bpm/c03-03/SA_HPosition + y_pos: srdiag/bpm/c03-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C03-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C03-04/x_pos - y_pos: BPM_C03-04/y_pos + x_pos: srdiag/bpm/c03-04/SA_HPosition + y_pos: srdiag/bpm/c03-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C03-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C03-05/x_pos - y_pos: BPM_C03-05/y_pos + x_pos: srdiag/bpm/c03-05/SA_HPosition + y_pos: srdiag/bpm/c03-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C03-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C03-06/x_pos - y_pos: BPM_C03-06/y_pos + x_pos: srdiag/bpm/c03-06/SA_HPosition + y_pos: srdiag/bpm/c03-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C03-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C03-07/x_pos - y_pos: BPM_C03-07/y_pos + x_pos: srdiag/bpm/c03-07/SA_HPosition + y_pos: srdiag/bpm/c03-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C03-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C03-08/x_pos - y_pos: BPM_C03-08/y_pos + x_pos: srdiag/bpm/c03-08/SA_HPosition + y_pos: srdiag/bpm/c03-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C03-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C03-09/x_pos - y_pos: BPM_C03-09/y_pos + x_pos: srdiag/bpm/c03-09/SA_HPosition + y_pos: srdiag/bpm/c03-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C03-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C03-10/x_pos - y_pos: BPM_C03-10/y_pos + x_pos: srdiag/bpm/c03-10/SA_HPosition + y_pos: srdiag/bpm/c03-10/SA_VPosition diff --git a/tests/config/EBS_chromaticity.yaml b/tests/config/EBS_chromaticity.yaml index 8eb63291..d5efd086 100644 --- a/tests/config/EBS_chromaticity.yaml +++ b/tests/config/EBS_chromaticity.yaml @@ -57,1919 +57,1919 @@ devices: name: BPM_C04-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C04-01/x_pos - y_pos: BPM_C04-01/y_pos + x_pos: srdiag/bpm/c04-01/SA_HPosition + y_pos: srdiag/bpm/c04-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C04-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C04-02/x_pos - y_pos: BPM_C04-02/y_pos + x_pos: srdiag/bpm/c04-02/SA_HPosition + y_pos: srdiag/bpm/c04-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C04-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C04-03/x_pos - y_pos: BPM_C04-03/y_pos + x_pos: srdiag/bpm/c04-03/SA_HPosition + y_pos: srdiag/bpm/c04-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C04-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C04-04/x_pos - y_pos: BPM_C04-04/y_pos + x_pos: srdiag/bpm/c04-04/SA_HPosition + y_pos: srdiag/bpm/c04-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C04-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C04-05/x_pos - y_pos: BPM_C04-05/y_pos + x_pos: srdiag/bpm/c04-05/SA_HPosition + y_pos: srdiag/bpm/c04-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C04-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C04-06/x_pos - y_pos: BPM_C04-06/y_pos + x_pos: srdiag/bpm/c04-06/SA_HPosition + y_pos: srdiag/bpm/c04-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C04-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C04-07/x_pos - y_pos: BPM_C04-07/y_pos + x_pos: srdiag/bpm/c04-07/SA_HPosition + y_pos: srdiag/bpm/c04-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C04-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C04-08/x_pos - y_pos: BPM_C04-08/y_pos + x_pos: srdiag/bpm/c04-08/SA_HPosition + y_pos: srdiag/bpm/c04-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C04-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C04-09/x_pos - y_pos: BPM_C04-09/y_pos + x_pos: srdiag/bpm/c04-09/SA_HPosition + y_pos: srdiag/bpm/c04-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C04-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C04-10/x_pos - y_pos: BPM_C04-10/y_pos + x_pos: srdiag/bpm/c04-10/SA_HPosition + y_pos: srdiag/bpm/c04-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C05-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C05-01/x_pos - y_pos: BPM_C05-01/y_pos + x_pos: srdiag/bpm/c05-01/SA_HPosition + y_pos: srdiag/bpm/c05-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C05-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C05-02/x_pos - y_pos: BPM_C05-02/y_pos + x_pos: srdiag/bpm/c05-02/SA_HPosition + y_pos: srdiag/bpm/c05-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C05-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C05-03/x_pos - y_pos: BPM_C05-03/y_pos + x_pos: srdiag/bpm/c05-03/SA_HPosition + y_pos: srdiag/bpm/c05-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C05-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C05-04/x_pos - y_pos: BPM_C05-04/y_pos + x_pos: srdiag/bpm/c05-04/SA_HPosition + y_pos: srdiag/bpm/c05-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C05-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C05-05/x_pos - y_pos: BPM_C05-05/y_pos + x_pos: srdiag/bpm/c05-05/SA_HPosition + y_pos: srdiag/bpm/c05-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C05-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C05-06/x_pos - y_pos: BPM_C05-06/y_pos + x_pos: srdiag/bpm/c05-06/SA_HPosition + y_pos: srdiag/bpm/c05-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C05-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C05-07/x_pos - y_pos: BPM_C05-07/y_pos + x_pos: srdiag/bpm/c05-07/SA_HPosition + y_pos: srdiag/bpm/c05-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C05-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C05-08/x_pos - y_pos: BPM_C05-08/y_pos + x_pos: srdiag/bpm/c05-08/SA_HPosition + y_pos: srdiag/bpm/c05-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C05-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C05-09/x_pos - y_pos: BPM_C05-09/y_pos + x_pos: srdiag/bpm/c05-09/SA_HPosition + y_pos: srdiag/bpm/c05-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C05-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C05-10/x_pos - y_pos: BPM_C05-10/y_pos + x_pos: srdiag/bpm/c05-10/SA_HPosition + y_pos: srdiag/bpm/c05-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C06-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C06-01/x_pos - y_pos: BPM_C06-01/y_pos + x_pos: srdiag/bpm/c06-01/SA_HPosition + y_pos: srdiag/bpm/c06-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C06-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C06-02/x_pos - y_pos: BPM_C06-02/y_pos + x_pos: srdiag/bpm/c06-02/SA_HPosition + y_pos: srdiag/bpm/c06-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C06-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C06-03/x_pos - y_pos: BPM_C06-03/y_pos + x_pos: srdiag/bpm/c06-03/SA_HPosition + y_pos: srdiag/bpm/c06-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C06-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C06-04/x_pos - y_pos: BPM_C06-04/y_pos + x_pos: srdiag/bpm/c06-04/SA_HPosition + y_pos: srdiag/bpm/c06-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C06-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C06-05/x_pos - y_pos: BPM_C06-05/y_pos + x_pos: srdiag/bpm/c06-05/SA_HPosition + y_pos: srdiag/bpm/c06-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C06-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C06-06/x_pos - y_pos: BPM_C06-06/y_pos + x_pos: srdiag/bpm/c06-06/SA_HPosition + y_pos: srdiag/bpm/c06-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C06-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C06-07/x_pos - y_pos: BPM_C06-07/y_pos + x_pos: srdiag/bpm/c06-07/SA_HPosition + y_pos: srdiag/bpm/c06-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C06-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C06-08/x_pos - y_pos: BPM_C06-08/y_pos + x_pos: srdiag/bpm/c06-08/SA_HPosition + y_pos: srdiag/bpm/c06-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C06-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C06-09/x_pos - y_pos: BPM_C06-09/y_pos + x_pos: srdiag/bpm/c06-09/SA_HPosition + y_pos: srdiag/bpm/c06-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C06-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C06-10/x_pos - y_pos: BPM_C06-10/y_pos + x_pos: srdiag/bpm/c06-10/SA_HPosition + y_pos: srdiag/bpm/c06-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C07-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C07-01/x_pos - y_pos: BPM_C07-01/y_pos + x_pos: srdiag/bpm/c07-01/SA_HPosition + y_pos: srdiag/bpm/c07-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C07-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C07-02/x_pos - y_pos: BPM_C07-02/y_pos + x_pos: srdiag/bpm/c07-02/SA_HPosition + y_pos: srdiag/bpm/c07-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C07-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C07-03/x_pos - y_pos: BPM_C07-03/y_pos + x_pos: srdiag/bpm/c07-03/SA_HPosition + y_pos: srdiag/bpm/c07-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C07-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C07-04/x_pos - y_pos: BPM_C07-04/y_pos + x_pos: srdiag/bpm/c07-04/SA_HPosition + y_pos: srdiag/bpm/c07-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C07-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C07-05/x_pos - y_pos: BPM_C07-05/y_pos + x_pos: srdiag/bpm/c07-05/SA_HPosition + y_pos: srdiag/bpm/c07-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C07-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C07-06/x_pos - y_pos: BPM_C07-06/y_pos + x_pos: srdiag/bpm/c07-06/SA_HPosition + y_pos: srdiag/bpm/c07-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C07-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C07-07/x_pos - y_pos: BPM_C07-07/y_pos + x_pos: srdiag/bpm/c07-07/SA_HPosition + y_pos: srdiag/bpm/c07-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C07-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C07-08/x_pos - y_pos: BPM_C07-08/y_pos + x_pos: srdiag/bpm/c07-08/SA_HPosition + y_pos: srdiag/bpm/c07-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C07-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C07-09/x_pos - y_pos: BPM_C07-09/y_pos + x_pos: srdiag/bpm/c07-09/SA_HPosition + y_pos: srdiag/bpm/c07-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C07-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C07-10/x_pos - y_pos: BPM_C07-10/y_pos + x_pos: srdiag/bpm/c07-10/SA_HPosition + y_pos: srdiag/bpm/c07-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C08-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C08-01/x_pos - y_pos: BPM_C08-01/y_pos + x_pos: srdiag/bpm/c08-01/SA_HPosition + y_pos: srdiag/bpm/c08-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C08-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C08-02/x_pos - y_pos: BPM_C08-02/y_pos + x_pos: srdiag/bpm/c08-02/SA_HPosition + y_pos: srdiag/bpm/c08-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C08-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C08-03/x_pos - y_pos: BPM_C08-03/y_pos + x_pos: srdiag/bpm/c08-03/SA_HPosition + y_pos: srdiag/bpm/c08-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C08-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C08-04/x_pos - y_pos: BPM_C08-04/y_pos + x_pos: srdiag/bpm/c08-04/SA_HPosition + y_pos: srdiag/bpm/c08-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C08-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C08-05/x_pos - y_pos: BPM_C08-05/y_pos + x_pos: srdiag/bpm/c08-05/SA_HPosition + y_pos: srdiag/bpm/c08-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C08-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C08-06/x_pos - y_pos: BPM_C08-06/y_pos + x_pos: srdiag/bpm/c08-06/SA_HPosition + y_pos: srdiag/bpm/c08-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C08-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C08-07/x_pos - y_pos: BPM_C08-07/y_pos + x_pos: srdiag/bpm/c08-07/SA_HPosition + y_pos: srdiag/bpm/c08-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C08-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C08-08/x_pos - y_pos: BPM_C08-08/y_pos + x_pos: srdiag/bpm/c08-08/SA_HPosition + y_pos: srdiag/bpm/c08-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C08-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C08-09/x_pos - y_pos: BPM_C08-09/y_pos + x_pos: srdiag/bpm/c08-09/SA_HPosition + y_pos: srdiag/bpm/c08-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C08-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C08-10/x_pos - y_pos: BPM_C08-10/y_pos + x_pos: srdiag/bpm/c08-10/SA_HPosition + y_pos: srdiag/bpm/c08-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C09-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C09-01/x_pos - y_pos: BPM_C09-01/y_pos + x_pos: srdiag/bpm/c09-01/SA_HPosition + y_pos: srdiag/bpm/c09-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C09-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C09-02/x_pos - y_pos: BPM_C09-02/y_pos + x_pos: srdiag/bpm/c09-02/SA_HPosition + y_pos: srdiag/bpm/c09-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C09-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C09-03/x_pos - y_pos: BPM_C09-03/y_pos + x_pos: srdiag/bpm/c09-03/SA_HPosition + y_pos: srdiag/bpm/c09-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C09-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C09-04/x_pos - y_pos: BPM_C09-04/y_pos + x_pos: srdiag/bpm/c09-04/SA_HPosition + y_pos: srdiag/bpm/c09-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C09-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C09-05/x_pos - y_pos: BPM_C09-05/y_pos + x_pos: srdiag/bpm/c09-05/SA_HPosition + y_pos: srdiag/bpm/c09-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C09-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C09-06/x_pos - y_pos: BPM_C09-06/y_pos + x_pos: srdiag/bpm/c09-06/SA_HPosition + y_pos: srdiag/bpm/c09-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C09-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C09-07/x_pos - y_pos: BPM_C09-07/y_pos + x_pos: srdiag/bpm/c09-07/SA_HPosition + y_pos: srdiag/bpm/c09-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C09-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C09-08/x_pos - y_pos: BPM_C09-08/y_pos + x_pos: srdiag/bpm/c09-08/SA_HPosition + y_pos: srdiag/bpm/c09-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C09-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C09-09/x_pos - y_pos: BPM_C09-09/y_pos + x_pos: srdiag/bpm/c09-09/SA_HPosition + y_pos: srdiag/bpm/c09-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C09-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C09-10/x_pos - y_pos: BPM_C09-10/y_pos + x_pos: srdiag/bpm/c09-10/SA_HPosition + y_pos: srdiag/bpm/c09-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C10-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C10-01/x_pos - y_pos: BPM_C10-01/y_pos + x_pos: srdiag/bpm/c10-01/SA_HPosition + y_pos: srdiag/bpm/c10-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C10-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C10-02/x_pos - y_pos: BPM_C10-02/y_pos + x_pos: srdiag/bpm/c10-02/SA_HPosition + y_pos: srdiag/bpm/c10-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C10-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C10-03/x_pos - y_pos: BPM_C10-03/y_pos + x_pos: srdiag/bpm/c10-03/SA_HPosition + y_pos: srdiag/bpm/c10-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C10-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C10-04/x_pos - y_pos: BPM_C10-04/y_pos + x_pos: srdiag/bpm/c10-04/SA_HPosition + y_pos: srdiag/bpm/c10-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C10-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C10-05/x_pos - y_pos: BPM_C10-05/y_pos + x_pos: srdiag/bpm/c10-05/SA_HPosition + y_pos: srdiag/bpm/c10-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C10-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C10-06/x_pos - y_pos: BPM_C10-06/y_pos + x_pos: srdiag/bpm/c10-06/SA_HPosition + y_pos: srdiag/bpm/c10-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C10-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C10-07/x_pos - y_pos: BPM_C10-07/y_pos + x_pos: srdiag/bpm/c10-07/SA_HPosition + y_pos: srdiag/bpm/c10-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C10-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C10-08/x_pos - y_pos: BPM_C10-08/y_pos + x_pos: srdiag/bpm/c10-08/SA_HPosition + y_pos: srdiag/bpm/c10-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C10-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C10-09/x_pos - y_pos: BPM_C10-09/y_pos + x_pos: srdiag/bpm/c10-09/SA_HPosition + y_pos: srdiag/bpm/c10-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C10-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C10-10/x_pos - y_pos: BPM_C10-10/y_pos + x_pos: srdiag/bpm/c10-10/SA_HPosition + y_pos: srdiag/bpm/c10-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C11-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C11-01/x_pos - y_pos: BPM_C11-01/y_pos + x_pos: srdiag/bpm/c11-01/SA_HPosition + y_pos: srdiag/bpm/c11-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C11-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C11-02/x_pos - y_pos: BPM_C11-02/y_pos + x_pos: srdiag/bpm/c11-02/SA_HPosition + y_pos: srdiag/bpm/c11-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C11-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C11-03/x_pos - y_pos: BPM_C11-03/y_pos + x_pos: srdiag/bpm/c11-03/SA_HPosition + y_pos: srdiag/bpm/c11-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C11-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C11-04/x_pos - y_pos: BPM_C11-04/y_pos + x_pos: srdiag/bpm/c11-04/SA_HPosition + y_pos: srdiag/bpm/c11-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C11-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C11-05/x_pos - y_pos: BPM_C11-05/y_pos + x_pos: srdiag/bpm/c11-05/SA_HPosition + y_pos: srdiag/bpm/c11-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C11-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C11-06/x_pos - y_pos: BPM_C11-06/y_pos + x_pos: srdiag/bpm/c11-06/SA_HPosition + y_pos: srdiag/bpm/c11-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C11-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C11-07/x_pos - y_pos: BPM_C11-07/y_pos + x_pos: srdiag/bpm/c11-07/SA_HPosition + y_pos: srdiag/bpm/c11-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C11-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C11-08/x_pos - y_pos: BPM_C11-08/y_pos + x_pos: srdiag/bpm/c11-08/SA_HPosition + y_pos: srdiag/bpm/c11-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C11-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C11-09/x_pos - y_pos: BPM_C11-09/y_pos + x_pos: srdiag/bpm/c11-09/SA_HPosition + y_pos: srdiag/bpm/c11-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C11-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C11-10/x_pos - y_pos: BPM_C11-10/y_pos + x_pos: srdiag/bpm/c11-10/SA_HPosition + y_pos: srdiag/bpm/c11-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C12-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C12-01/x_pos - y_pos: BPM_C12-01/y_pos + x_pos: srdiag/bpm/c12-01/SA_HPosition + y_pos: srdiag/bpm/c12-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C12-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C12-02/x_pos - y_pos: BPM_C12-02/y_pos + x_pos: srdiag/bpm/c12-02/SA_HPosition + y_pos: srdiag/bpm/c12-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C12-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C12-03/x_pos - y_pos: BPM_C12-03/y_pos + x_pos: srdiag/bpm/c12-03/SA_HPosition + y_pos: srdiag/bpm/c12-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C12-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C12-04/x_pos - y_pos: BPM_C12-04/y_pos + x_pos: srdiag/bpm/c12-04/SA_HPosition + y_pos: srdiag/bpm/c12-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C12-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C12-05/x_pos - y_pos: BPM_C12-05/y_pos + x_pos: srdiag/bpm/c12-05/SA_HPosition + y_pos: srdiag/bpm/c12-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C12-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C12-06/x_pos - y_pos: BPM_C12-06/y_pos + x_pos: srdiag/bpm/c12-06/SA_HPosition + y_pos: srdiag/bpm/c12-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C12-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C12-07/x_pos - y_pos: BPM_C12-07/y_pos + x_pos: srdiag/bpm/c12-07/SA_HPosition + y_pos: srdiag/bpm/c12-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C12-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C12-08/x_pos - y_pos: BPM_C12-08/y_pos + x_pos: srdiag/bpm/c12-08/SA_HPosition + y_pos: srdiag/bpm/c12-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C12-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C12-09/x_pos - y_pos: BPM_C12-09/y_pos + x_pos: srdiag/bpm/c12-09/SA_HPosition + y_pos: srdiag/bpm/c12-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C12-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C12-10/x_pos - y_pos: BPM_C12-10/y_pos + x_pos: srdiag/bpm/c12-10/SA_HPosition + y_pos: srdiag/bpm/c12-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C13-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C13-01/x_pos - y_pos: BPM_C13-01/y_pos + x_pos: srdiag/bpm/c13-01/SA_HPosition + y_pos: srdiag/bpm/c13-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C13-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C13-02/x_pos - y_pos: BPM_C13-02/y_pos + x_pos: srdiag/bpm/c13-02/SA_HPosition + y_pos: srdiag/bpm/c13-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C13-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C13-03/x_pos - y_pos: BPM_C13-03/y_pos + x_pos: srdiag/bpm/c13-03/SA_HPosition + y_pos: srdiag/bpm/c13-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C13-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C13-04/x_pos - y_pos: BPM_C13-04/y_pos + x_pos: srdiag/bpm/c13-04/SA_HPosition + y_pos: srdiag/bpm/c13-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C13-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C13-05/x_pos - y_pos: BPM_C13-05/y_pos + x_pos: srdiag/bpm/c13-05/SA_HPosition + y_pos: srdiag/bpm/c13-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C13-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C13-06/x_pos - y_pos: BPM_C13-06/y_pos + x_pos: srdiag/bpm/c13-06/SA_HPosition + y_pos: srdiag/bpm/c13-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C13-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C13-07/x_pos - y_pos: BPM_C13-07/y_pos + x_pos: srdiag/bpm/c13-07/SA_HPosition + y_pos: srdiag/bpm/c13-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C13-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C13-08/x_pos - y_pos: BPM_C13-08/y_pos + x_pos: srdiag/bpm/c13-08/SA_HPosition + y_pos: srdiag/bpm/c13-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C13-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C13-09/x_pos - y_pos: BPM_C13-09/y_pos + x_pos: srdiag/bpm/c13-09/SA_HPosition + y_pos: srdiag/bpm/c13-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C13-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C13-10/x_pos - y_pos: BPM_C13-10/y_pos + x_pos: srdiag/bpm/c13-10/SA_HPosition + y_pos: srdiag/bpm/c13-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C14-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C14-01/x_pos - y_pos: BPM_C14-01/y_pos + x_pos: srdiag/bpm/c14-01/SA_HPosition + y_pos: srdiag/bpm/c14-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C14-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C14-02/x_pos - y_pos: BPM_C14-02/y_pos + x_pos: srdiag/bpm/c14-02/SA_HPosition + y_pos: srdiag/bpm/c14-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C14-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C14-03/x_pos - y_pos: BPM_C14-03/y_pos + x_pos: srdiag/bpm/c14-03/SA_HPosition + y_pos: srdiag/bpm/c14-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C14-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C14-04/x_pos - y_pos: BPM_C14-04/y_pos + x_pos: srdiag/bpm/c14-04/SA_HPosition + y_pos: srdiag/bpm/c14-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C14-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C14-05/x_pos - y_pos: BPM_C14-05/y_pos + x_pos: srdiag/bpm/c14-05/SA_HPosition + y_pos: srdiag/bpm/c14-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C14-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C14-06/x_pos - y_pos: BPM_C14-06/y_pos + x_pos: srdiag/bpm/c14-06/SA_HPosition + y_pos: srdiag/bpm/c14-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C14-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C14-07/x_pos - y_pos: BPM_C14-07/y_pos + x_pos: srdiag/bpm/c14-07/SA_HPosition + y_pos: srdiag/bpm/c14-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C14-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C14-08/x_pos - y_pos: BPM_C14-08/y_pos + x_pos: srdiag/bpm/c14-08/SA_HPosition + y_pos: srdiag/bpm/c14-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C14-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C14-09/x_pos - y_pos: BPM_C14-09/y_pos + x_pos: srdiag/bpm/c14-09/SA_HPosition + y_pos: srdiag/bpm/c14-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C14-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C14-10/x_pos - y_pos: BPM_C14-10/y_pos + x_pos: srdiag/bpm/c14-10/SA_HPosition + y_pos: srdiag/bpm/c14-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C15-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C15-01/x_pos - y_pos: BPM_C15-01/y_pos + x_pos: srdiag/bpm/c15-01/SA_HPosition + y_pos: srdiag/bpm/c15-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C15-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C15-02/x_pos - y_pos: BPM_C15-02/y_pos + x_pos: srdiag/bpm/c15-02/SA_HPosition + y_pos: srdiag/bpm/c15-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C15-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C15-03/x_pos - y_pos: BPM_C15-03/y_pos + x_pos: srdiag/bpm/c15-03/SA_HPosition + y_pos: srdiag/bpm/c15-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C15-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C15-04/x_pos - y_pos: BPM_C15-04/y_pos + x_pos: srdiag/bpm/c15-04/SA_HPosition + y_pos: srdiag/bpm/c15-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C15-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C15-05/x_pos - y_pos: BPM_C15-05/y_pos + x_pos: srdiag/bpm/c15-05/SA_HPosition + y_pos: srdiag/bpm/c15-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C15-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C15-06/x_pos - y_pos: BPM_C15-06/y_pos + x_pos: srdiag/bpm/c15-06/SA_HPosition + y_pos: srdiag/bpm/c15-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C15-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C15-07/x_pos - y_pos: BPM_C15-07/y_pos + x_pos: srdiag/bpm/c15-07/SA_HPosition + y_pos: srdiag/bpm/c15-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C15-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C15-08/x_pos - y_pos: BPM_C15-08/y_pos + x_pos: srdiag/bpm/c15-08/SA_HPosition + y_pos: srdiag/bpm/c15-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C15-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C15-09/x_pos - y_pos: BPM_C15-09/y_pos + x_pos: srdiag/bpm/c15-09/SA_HPosition + y_pos: srdiag/bpm/c15-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C15-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C15-10/x_pos - y_pos: BPM_C15-10/y_pos + x_pos: srdiag/bpm/c15-10/SA_HPosition + y_pos: srdiag/bpm/c15-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C16-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C16-01/x_pos - y_pos: BPM_C16-01/y_pos + x_pos: srdiag/bpm/c16-01/SA_HPosition + y_pos: srdiag/bpm/c16-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C16-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C16-02/x_pos - y_pos: BPM_C16-02/y_pos + x_pos: srdiag/bpm/c16-02/SA_HPosition + y_pos: srdiag/bpm/c16-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C16-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C16-03/x_pos - y_pos: BPM_C16-03/y_pos + x_pos: srdiag/bpm/c16-03/SA_HPosition + y_pos: srdiag/bpm/c16-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C16-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C16-04/x_pos - y_pos: BPM_C16-04/y_pos + x_pos: srdiag/bpm/c16-04/SA_HPosition + y_pos: srdiag/bpm/c16-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C16-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C16-05/x_pos - y_pos: BPM_C16-05/y_pos + x_pos: srdiag/bpm/c16-05/SA_HPosition + y_pos: srdiag/bpm/c16-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C16-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C16-06/x_pos - y_pos: BPM_C16-06/y_pos + x_pos: srdiag/bpm/c16-06/SA_HPosition + y_pos: srdiag/bpm/c16-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C16-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C16-07/x_pos - y_pos: BPM_C16-07/y_pos + x_pos: srdiag/bpm/c16-07/SA_HPosition + y_pos: srdiag/bpm/c16-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C16-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C16-08/x_pos - y_pos: BPM_C16-08/y_pos + x_pos: srdiag/bpm/c16-08/SA_HPosition + y_pos: srdiag/bpm/c16-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C16-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C16-09/x_pos - y_pos: BPM_C16-09/y_pos + x_pos: srdiag/bpm/c16-09/SA_HPosition + y_pos: srdiag/bpm/c16-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C16-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C16-10/x_pos - y_pos: BPM_C16-10/y_pos + x_pos: srdiag/bpm/c16-10/SA_HPosition + y_pos: srdiag/bpm/c16-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C17-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C17-01/x_pos - y_pos: BPM_C17-01/y_pos + x_pos: srdiag/bpm/c17-01/SA_HPosition + y_pos: srdiag/bpm/c17-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C17-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C17-02/x_pos - y_pos: BPM_C17-02/y_pos + x_pos: srdiag/bpm/c17-02/SA_HPosition + y_pos: srdiag/bpm/c17-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C17-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C17-03/x_pos - y_pos: BPM_C17-03/y_pos + x_pos: srdiag/bpm/c17-03/SA_HPosition + y_pos: srdiag/bpm/c17-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C17-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C17-04/x_pos - y_pos: BPM_C17-04/y_pos + x_pos: srdiag/bpm/c17-04/SA_HPosition + y_pos: srdiag/bpm/c17-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C17-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C17-05/x_pos - y_pos: BPM_C17-05/y_pos + x_pos: srdiag/bpm/c17-05/SA_HPosition + y_pos: srdiag/bpm/c17-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C17-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C17-06/x_pos - y_pos: BPM_C17-06/y_pos + x_pos: srdiag/bpm/c17-06/SA_HPosition + y_pos: srdiag/bpm/c17-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C17-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C17-07/x_pos - y_pos: BPM_C17-07/y_pos + x_pos: srdiag/bpm/c17-07/SA_HPosition + y_pos: srdiag/bpm/c17-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C17-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C17-08/x_pos - y_pos: BPM_C17-08/y_pos + x_pos: srdiag/bpm/c17-08/SA_HPosition + y_pos: srdiag/bpm/c17-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C17-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C17-09/x_pos - y_pos: BPM_C17-09/y_pos + x_pos: srdiag/bpm/c17-09/SA_HPosition + y_pos: srdiag/bpm/c17-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C17-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C17-10/x_pos - y_pos: BPM_C17-10/y_pos + x_pos: srdiag/bpm/c17-10/SA_HPosition + y_pos: srdiag/bpm/c17-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C18-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C18-01/x_pos - y_pos: BPM_C18-01/y_pos + x_pos: srdiag/bpm/c18-01/SA_HPosition + y_pos: srdiag/bpm/c18-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C18-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C18-02/x_pos - y_pos: BPM_C18-02/y_pos + x_pos: srdiag/bpm/c18-02/SA_HPosition + y_pos: srdiag/bpm/c18-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C18-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C18-03/x_pos - y_pos: BPM_C18-03/y_pos + x_pos: srdiag/bpm/c18-03/SA_HPosition + y_pos: srdiag/bpm/c18-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C18-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C18-04/x_pos - y_pos: BPM_C18-04/y_pos + x_pos: srdiag/bpm/c18-04/SA_HPosition + y_pos: srdiag/bpm/c18-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C18-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C18-05/x_pos - y_pos: BPM_C18-05/y_pos + x_pos: srdiag/bpm/c18-05/SA_HPosition + y_pos: srdiag/bpm/c18-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C18-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C18-06/x_pos - y_pos: BPM_C18-06/y_pos + x_pos: srdiag/bpm/c18-06/SA_HPosition + y_pos: srdiag/bpm/c18-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C18-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C18-07/x_pos - y_pos: BPM_C18-07/y_pos + x_pos: srdiag/bpm/c18-07/SA_HPosition + y_pos: srdiag/bpm/c18-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C18-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C18-08/x_pos - y_pos: BPM_C18-08/y_pos + x_pos: srdiag/bpm/c18-08/SA_HPosition + y_pos: srdiag/bpm/c18-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C18-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C18-09/x_pos - y_pos: BPM_C18-09/y_pos + x_pos: srdiag/bpm/c18-09/SA_HPosition + y_pos: srdiag/bpm/c18-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C18-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C18-10/x_pos - y_pos: BPM_C18-10/y_pos + x_pos: srdiag/bpm/c18-10/SA_HPosition + y_pos: srdiag/bpm/c18-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C19-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C19-01/x_pos - y_pos: BPM_C19-01/y_pos + x_pos: srdiag/bpm/c19-01/SA_HPosition + y_pos: srdiag/bpm/c19-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C19-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C19-02/x_pos - y_pos: BPM_C19-02/y_pos + x_pos: srdiag/bpm/c19-02/SA_HPosition + y_pos: srdiag/bpm/c19-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C19-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C19-03/x_pos - y_pos: BPM_C19-03/y_pos + x_pos: srdiag/bpm/c19-03/SA_HPosition + y_pos: srdiag/bpm/c19-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C19-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C19-04/x_pos - y_pos: BPM_C19-04/y_pos + x_pos: srdiag/bpm/c19-04/SA_HPosition + y_pos: srdiag/bpm/c19-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C19-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C19-05/x_pos - y_pos: BPM_C19-05/y_pos + x_pos: srdiag/bpm/c19-05/SA_HPosition + y_pos: srdiag/bpm/c19-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C19-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C19-06/x_pos - y_pos: BPM_C19-06/y_pos + x_pos: srdiag/bpm/c19-06/SA_HPosition + y_pos: srdiag/bpm/c19-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C19-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C19-07/x_pos - y_pos: BPM_C19-07/y_pos + x_pos: srdiag/bpm/c19-07/SA_HPosition + y_pos: srdiag/bpm/c19-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C19-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C19-08/x_pos - y_pos: BPM_C19-08/y_pos + x_pos: srdiag/bpm/c19-08/SA_HPosition + y_pos: srdiag/bpm/c19-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C19-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C19-09/x_pos - y_pos: BPM_C19-09/y_pos + x_pos: srdiag/bpm/c19-09/SA_HPosition + y_pos: srdiag/bpm/c19-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C19-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C19-10/x_pos - y_pos: BPM_C19-10/y_pos + x_pos: srdiag/bpm/c19-10/SA_HPosition + y_pos: srdiag/bpm/c19-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C20-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C20-01/x_pos - y_pos: BPM_C20-01/y_pos + x_pos: srdiag/bpm/c20-01/SA_HPosition + y_pos: srdiag/bpm/c20-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C20-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C20-02/x_pos - y_pos: BPM_C20-02/y_pos + x_pos: srdiag/bpm/c20-02/SA_HPosition + y_pos: srdiag/bpm/c20-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C20-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C20-03/x_pos - y_pos: BPM_C20-03/y_pos + x_pos: srdiag/bpm/c20-03/SA_HPosition + y_pos: srdiag/bpm/c20-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C20-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C20-04/x_pos - y_pos: BPM_C20-04/y_pos + x_pos: srdiag/bpm/c20-04/SA_HPosition + y_pos: srdiag/bpm/c20-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C20-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C20-05/x_pos - y_pos: BPM_C20-05/y_pos + x_pos: srdiag/bpm/c20-05/SA_HPosition + y_pos: srdiag/bpm/c20-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C20-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C20-06/x_pos - y_pos: BPM_C20-06/y_pos + x_pos: srdiag/bpm/c20-06/SA_HPosition + y_pos: srdiag/bpm/c20-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C20-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C20-07/x_pos - y_pos: BPM_C20-07/y_pos + x_pos: srdiag/bpm/c20-07/SA_HPosition + y_pos: srdiag/bpm/c20-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C20-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C20-08/x_pos - y_pos: BPM_C20-08/y_pos + x_pos: srdiag/bpm/c20-08/SA_HPosition + y_pos: srdiag/bpm/c20-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C20-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C20-09/x_pos - y_pos: BPM_C20-09/y_pos + x_pos: srdiag/bpm/c20-09/SA_HPosition + y_pos: srdiag/bpm/c20-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C20-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C20-10/x_pos - y_pos: BPM_C20-10/y_pos + x_pos: srdiag/bpm/c20-10/SA_HPosition + y_pos: srdiag/bpm/c20-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C21-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C21-01/x_pos - y_pos: BPM_C21-01/y_pos + x_pos: srdiag/bpm/c21-01/SA_HPosition + y_pos: srdiag/bpm/c21-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C21-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C21-02/x_pos - y_pos: BPM_C21-02/y_pos + x_pos: srdiag/bpm/c21-02/SA_HPosition + y_pos: srdiag/bpm/c21-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C21-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C21-03/x_pos - y_pos: BPM_C21-03/y_pos + x_pos: srdiag/bpm/c21-03/SA_HPosition + y_pos: srdiag/bpm/c21-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C21-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C21-04/x_pos - y_pos: BPM_C21-04/y_pos + x_pos: srdiag/bpm/c21-04/SA_HPosition + y_pos: srdiag/bpm/c21-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C21-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C21-05/x_pos - y_pos: BPM_C21-05/y_pos + x_pos: srdiag/bpm/c21-05/SA_HPosition + y_pos: srdiag/bpm/c21-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C21-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C21-06/x_pos - y_pos: BPM_C21-06/y_pos + x_pos: srdiag/bpm/c21-06/SA_HPosition + y_pos: srdiag/bpm/c21-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C21-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C21-07/x_pos - y_pos: BPM_C21-07/y_pos + x_pos: srdiag/bpm/c21-07/SA_HPosition + y_pos: srdiag/bpm/c21-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C21-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C21-08/x_pos - y_pos: BPM_C21-08/y_pos + x_pos: srdiag/bpm/c21-08/SA_HPosition + y_pos: srdiag/bpm/c21-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C21-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C21-09/x_pos - y_pos: BPM_C21-09/y_pos + x_pos: srdiag/bpm/c21-09/SA_HPosition + y_pos: srdiag/bpm/c21-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C21-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C21-10/x_pos - y_pos: BPM_C21-10/y_pos + x_pos: srdiag/bpm/c21-10/SA_HPosition + y_pos: srdiag/bpm/c21-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C22-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C22-01/x_pos - y_pos: BPM_C22-01/y_pos + x_pos: srdiag/bpm/c22-01/SA_HPosition + y_pos: srdiag/bpm/c22-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C22-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C22-02/x_pos - y_pos: BPM_C22-02/y_pos + x_pos: srdiag/bpm/c22-02/SA_HPosition + y_pos: srdiag/bpm/c22-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C22-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C22-03/x_pos - y_pos: BPM_C22-03/y_pos + x_pos: srdiag/bpm/c22-03/SA_HPosition + y_pos: srdiag/bpm/c22-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C22-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C22-04/x_pos - y_pos: BPM_C22-04/y_pos + x_pos: srdiag/bpm/c22-04/SA_HPosition + y_pos: srdiag/bpm/c22-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C22-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C22-05/x_pos - y_pos: BPM_C22-05/y_pos + x_pos: srdiag/bpm/c22-05/SA_HPosition + y_pos: srdiag/bpm/c22-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C22-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C22-06/x_pos - y_pos: BPM_C22-06/y_pos + x_pos: srdiag/bpm/c22-06/SA_HPosition + y_pos: srdiag/bpm/c22-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C22-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C22-07/x_pos - y_pos: BPM_C22-07/y_pos + x_pos: srdiag/bpm/c22-07/SA_HPosition + y_pos: srdiag/bpm/c22-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C22-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C22-08/x_pos - y_pos: BPM_C22-08/y_pos + x_pos: srdiag/bpm/c22-08/SA_HPosition + y_pos: srdiag/bpm/c22-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C22-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C22-09/x_pos - y_pos: BPM_C22-09/y_pos + x_pos: srdiag/bpm/c22-09/SA_HPosition + y_pos: srdiag/bpm/c22-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C22-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C22-10/x_pos - y_pos: BPM_C22-10/y_pos + x_pos: srdiag/bpm/c22-10/SA_HPosition + y_pos: srdiag/bpm/c22-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C23-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C23-01/x_pos - y_pos: BPM_C23-01/y_pos + x_pos: srdiag/bpm/c23-01/SA_HPosition + y_pos: srdiag/bpm/c23-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C23-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C23-02/x_pos - y_pos: BPM_C23-02/y_pos + x_pos: srdiag/bpm/c23-02/SA_HPosition + y_pos: srdiag/bpm/c23-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C23-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C23-03/x_pos - y_pos: BPM_C23-03/y_pos + x_pos: srdiag/bpm/c23-03/SA_HPosition + y_pos: srdiag/bpm/c23-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C23-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C23-04/x_pos - y_pos: BPM_C23-04/y_pos + x_pos: srdiag/bpm/c23-04/SA_HPosition + y_pos: srdiag/bpm/c23-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C23-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C23-05/x_pos - y_pos: BPM_C23-05/y_pos + x_pos: srdiag/bpm/c23-05/SA_HPosition + y_pos: srdiag/bpm/c23-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C23-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C23-06/x_pos - y_pos: BPM_C23-06/y_pos + x_pos: srdiag/bpm/c23-06/SA_HPosition + y_pos: srdiag/bpm/c23-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C23-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C23-07/x_pos - y_pos: BPM_C23-07/y_pos + x_pos: srdiag/bpm/c23-07/SA_HPosition + y_pos: srdiag/bpm/c23-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C23-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C23-08/x_pos - y_pos: BPM_C23-08/y_pos + x_pos: srdiag/bpm/c23-08/SA_HPosition + y_pos: srdiag/bpm/c23-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C23-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C23-09/x_pos - y_pos: BPM_C23-09/y_pos + x_pos: srdiag/bpm/c23-09/SA_HPosition + y_pos: srdiag/bpm/c23-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C23-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C23-10/x_pos - y_pos: BPM_C23-10/y_pos + x_pos: srdiag/bpm/c23-10/SA_HPosition + y_pos: srdiag/bpm/c23-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C24-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C24-01/x_pos - y_pos: BPM_C24-01/y_pos + x_pos: srdiag/bpm/c24-01/SA_HPosition + y_pos: srdiag/bpm/c24-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C24-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C24-02/x_pos - y_pos: BPM_C24-02/y_pos + x_pos: srdiag/bpm/c24-02/SA_HPosition + y_pos: srdiag/bpm/c24-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C24-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C24-03/x_pos - y_pos: BPM_C24-03/y_pos + x_pos: srdiag/bpm/c24-03/SA_HPosition + y_pos: srdiag/bpm/c24-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C24-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C24-04/x_pos - y_pos: BPM_C24-04/y_pos + x_pos: srdiag/bpm/c24-04/SA_HPosition + y_pos: srdiag/bpm/c24-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C24-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C24-05/x_pos - y_pos: BPM_C24-05/y_pos + x_pos: srdiag/bpm/c24-05/SA_HPosition + y_pos: srdiag/bpm/c24-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C24-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C24-06/x_pos - y_pos: BPM_C24-06/y_pos + x_pos: srdiag/bpm/c24-06/SA_HPosition + y_pos: srdiag/bpm/c24-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C24-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C24-07/x_pos - y_pos: BPM_C24-07/y_pos + x_pos: srdiag/bpm/c24-07/SA_HPosition + y_pos: srdiag/bpm/c24-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C24-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C24-08/x_pos - y_pos: BPM_C24-08/y_pos + x_pos: srdiag/bpm/c24-08/SA_HPosition + y_pos: srdiag/bpm/c24-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C24-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C24-09/x_pos - y_pos: BPM_C24-09/y_pos + x_pos: srdiag/bpm/c24-09/SA_HPosition + y_pos: srdiag/bpm/c24-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C24-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C24-10/x_pos - y_pos: BPM_C24-10/y_pos + x_pos: srdiag/bpm/c24-10/SA_HPosition + y_pos: srdiag/bpm/c24-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C25-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C25-01/x_pos - y_pos: BPM_C25-01/y_pos + x_pos: srdiag/bpm/c25-01/SA_HPosition + y_pos: srdiag/bpm/c25-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C25-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C25-02/x_pos - y_pos: BPM_C25-02/y_pos + x_pos: srdiag/bpm/c25-02/SA_HPosition + y_pos: srdiag/bpm/c25-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C25-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C25-03/x_pos - y_pos: BPM_C25-03/y_pos + x_pos: srdiag/bpm/c25-03/SA_HPosition + y_pos: srdiag/bpm/c25-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C25-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C25-04/x_pos - y_pos: BPM_C25-04/y_pos + x_pos: srdiag/bpm/c25-04/SA_HPosition + y_pos: srdiag/bpm/c25-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C25-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C25-05/x_pos - y_pos: BPM_C25-05/y_pos + x_pos: srdiag/bpm/c25-05/SA_HPosition + y_pos: srdiag/bpm/c25-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C25-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C25-06/x_pos - y_pos: BPM_C25-06/y_pos + x_pos: srdiag/bpm/c25-06/SA_HPosition + y_pos: srdiag/bpm/c25-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C25-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C25-07/x_pos - y_pos: BPM_C25-07/y_pos + x_pos: srdiag/bpm/c25-07/SA_HPosition + y_pos: srdiag/bpm/c25-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C25-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C25-08/x_pos - y_pos: BPM_C25-08/y_pos + x_pos: srdiag/bpm/c25-08/SA_HPosition + y_pos: srdiag/bpm/c25-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C25-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C25-09/x_pos - y_pos: BPM_C25-09/y_pos + x_pos: srdiag/bpm/c25-09/SA_HPosition + y_pos: srdiag/bpm/c25-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C25-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C25-10/x_pos - y_pos: BPM_C25-10/y_pos + x_pos: srdiag/bpm/c25-10/SA_HPosition + y_pos: srdiag/bpm/c25-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C26-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C26-01/x_pos - y_pos: BPM_C26-01/y_pos + x_pos: srdiag/bpm/c26-01/SA_HPosition + y_pos: srdiag/bpm/c26-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C26-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C26-02/x_pos - y_pos: BPM_C26-02/y_pos + x_pos: srdiag/bpm/c26-02/SA_HPosition + y_pos: srdiag/bpm/c26-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C26-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C26-03/x_pos - y_pos: BPM_C26-03/y_pos + x_pos: srdiag/bpm/c26-03/SA_HPosition + y_pos: srdiag/bpm/c26-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C26-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C26-04/x_pos - y_pos: BPM_C26-04/y_pos + x_pos: srdiag/bpm/c26-04/SA_HPosition + y_pos: srdiag/bpm/c26-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C26-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C26-05/x_pos - y_pos: BPM_C26-05/y_pos + x_pos: srdiag/bpm/c26-05/SA_HPosition + y_pos: srdiag/bpm/c26-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C26-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C26-06/x_pos - y_pos: BPM_C26-06/y_pos + x_pos: srdiag/bpm/c26-06/SA_HPosition + y_pos: srdiag/bpm/c26-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C26-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C26-07/x_pos - y_pos: BPM_C26-07/y_pos + x_pos: srdiag/bpm/c26-07/SA_HPosition + y_pos: srdiag/bpm/c26-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C26-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C26-08/x_pos - y_pos: BPM_C26-08/y_pos + x_pos: srdiag/bpm/c26-08/SA_HPosition + y_pos: srdiag/bpm/c26-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C26-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C26-09/x_pos - y_pos: BPM_C26-09/y_pos + x_pos: srdiag/bpm/c26-09/SA_HPosition + y_pos: srdiag/bpm/c26-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C26-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C26-10/x_pos - y_pos: BPM_C26-10/y_pos + x_pos: srdiag/bpm/c26-10/SA_HPosition + y_pos: srdiag/bpm/c26-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C27-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C27-01/x_pos - y_pos: BPM_C27-01/y_pos + x_pos: srdiag/bpm/c27-01/SA_HPosition + y_pos: srdiag/bpm/c27-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C27-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C27-02/x_pos - y_pos: BPM_C27-02/y_pos + x_pos: srdiag/bpm/c27-02/SA_HPosition + y_pos: srdiag/bpm/c27-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C27-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C27-03/x_pos - y_pos: BPM_C27-03/y_pos + x_pos: srdiag/bpm/c27-03/SA_HPosition + y_pos: srdiag/bpm/c27-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C27-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C27-04/x_pos - y_pos: BPM_C27-04/y_pos + x_pos: srdiag/bpm/c27-04/SA_HPosition + y_pos: srdiag/bpm/c27-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C27-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C27-05/x_pos - y_pos: BPM_C27-05/y_pos + x_pos: srdiag/bpm/c27-05/SA_HPosition + y_pos: srdiag/bpm/c27-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C27-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C27-06/x_pos - y_pos: BPM_C27-06/y_pos + x_pos: srdiag/bpm/c27-06/SA_HPosition + y_pos: srdiag/bpm/c27-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C27-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C27-07/x_pos - y_pos: BPM_C27-07/y_pos + x_pos: srdiag/bpm/c27-07/SA_HPosition + y_pos: srdiag/bpm/c27-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C27-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C27-08/x_pos - y_pos: BPM_C27-08/y_pos + x_pos: srdiag/bpm/c27-08/SA_HPosition + y_pos: srdiag/bpm/c27-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C27-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C27-09/x_pos - y_pos: BPM_C27-09/y_pos + x_pos: srdiag/bpm/c27-09/SA_HPosition + y_pos: srdiag/bpm/c27-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C27-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C27-10/x_pos - y_pos: BPM_C27-10/y_pos + x_pos: srdiag/bpm/c27-10/SA_HPosition + y_pos: srdiag/bpm/c27-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C28-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C28-01/x_pos - y_pos: BPM_C28-01/y_pos + x_pos: srdiag/bpm/c28-01/SA_HPosition + y_pos: srdiag/bpm/c28-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C28-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C28-02/x_pos - y_pos: BPM_C28-02/y_pos + x_pos: srdiag/bpm/c28-02/SA_HPosition + y_pos: srdiag/bpm/c28-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C28-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C28-03/x_pos - y_pos: BPM_C28-03/y_pos + x_pos: srdiag/bpm/c28-03/SA_HPosition + y_pos: srdiag/bpm/c28-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C28-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C28-04/x_pos - y_pos: BPM_C28-04/y_pos + x_pos: srdiag/bpm/c28-04/SA_HPosition + y_pos: srdiag/bpm/c28-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C28-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C28-05/x_pos - y_pos: BPM_C28-05/y_pos + x_pos: srdiag/bpm/c28-05/SA_HPosition + y_pos: srdiag/bpm/c28-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C28-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C28-06/x_pos - y_pos: BPM_C28-06/y_pos + x_pos: srdiag/bpm/c28-06/SA_HPosition + y_pos: srdiag/bpm/c28-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C28-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C28-07/x_pos - y_pos: BPM_C28-07/y_pos + x_pos: srdiag/bpm/c28-07/SA_HPosition + y_pos: srdiag/bpm/c28-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C28-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C28-08/x_pos - y_pos: BPM_C28-08/y_pos + x_pos: srdiag/bpm/c28-08/SA_HPosition + y_pos: srdiag/bpm/c28-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C28-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C28-09/x_pos - y_pos: BPM_C28-09/y_pos + x_pos: srdiag/bpm/c28-09/SA_HPosition + y_pos: srdiag/bpm/c28-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C28-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C28-10/x_pos - y_pos: BPM_C28-10/y_pos + x_pos: srdiag/bpm/c28-10/SA_HPosition + y_pos: srdiag/bpm/c28-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C29-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C29-01/x_pos - y_pos: BPM_C29-01/y_pos + x_pos: srdiag/bpm/c29-01/SA_HPosition + y_pos: srdiag/bpm/c29-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C29-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C29-02/x_pos - y_pos: BPM_C29-02/y_pos + x_pos: srdiag/bpm/c29-02/SA_HPosition + y_pos: srdiag/bpm/c29-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C29-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C29-03/x_pos - y_pos: BPM_C29-03/y_pos + x_pos: srdiag/bpm/c29-03/SA_HPosition + y_pos: srdiag/bpm/c29-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C29-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C29-04/x_pos - y_pos: BPM_C29-04/y_pos + x_pos: srdiag/bpm/c29-04/SA_HPosition + y_pos: srdiag/bpm/c29-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C29-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C29-05/x_pos - y_pos: BPM_C29-05/y_pos + x_pos: srdiag/bpm/c29-05/SA_HPosition + y_pos: srdiag/bpm/c29-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C29-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C29-06/x_pos - y_pos: BPM_C29-06/y_pos + x_pos: srdiag/bpm/c29-06/SA_HPosition + y_pos: srdiag/bpm/c29-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C29-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C29-07/x_pos - y_pos: BPM_C29-07/y_pos + x_pos: srdiag/bpm/c29-07/SA_HPosition + y_pos: srdiag/bpm/c29-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C29-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C29-08/x_pos - y_pos: BPM_C29-08/y_pos + x_pos: srdiag/bpm/c29-08/SA_HPosition + y_pos: srdiag/bpm/c29-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C29-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C29-09/x_pos - y_pos: BPM_C29-09/y_pos + x_pos: srdiag/bpm/c29-09/SA_HPosition + y_pos: srdiag/bpm/c29-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C29-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C29-10/x_pos - y_pos: BPM_C29-10/y_pos + x_pos: srdiag/bpm/c29-10/SA_HPosition + y_pos: srdiag/bpm/c29-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C30-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C30-01/x_pos - y_pos: BPM_C30-01/y_pos + x_pos: srdiag/bpm/c30-01/SA_HPosition + y_pos: srdiag/bpm/c30-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C30-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C30-02/x_pos - y_pos: BPM_C30-02/y_pos + x_pos: srdiag/bpm/c30-02/SA_HPosition + y_pos: srdiag/bpm/c30-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C30-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C30-03/x_pos - y_pos: BPM_C30-03/y_pos + x_pos: srdiag/bpm/c30-03/SA_HPosition + y_pos: srdiag/bpm/c30-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C30-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C30-04/x_pos - y_pos: BPM_C30-04/y_pos + x_pos: srdiag/bpm/c30-04/SA_HPosition + y_pos: srdiag/bpm/c30-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C30-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C30-05/x_pos - y_pos: BPM_C30-05/y_pos + x_pos: srdiag/bpm/c30-05/SA_HPosition + y_pos: srdiag/bpm/c30-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C30-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C30-06/x_pos - y_pos: BPM_C30-06/y_pos + x_pos: srdiag/bpm/c30-06/SA_HPosition + y_pos: srdiag/bpm/c30-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C30-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C30-07/x_pos - y_pos: BPM_C30-07/y_pos + x_pos: srdiag/bpm/c30-07/SA_HPosition + y_pos: srdiag/bpm/c30-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C30-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C30-08/x_pos - y_pos: BPM_C30-08/y_pos + x_pos: srdiag/bpm/c30-08/SA_HPosition + y_pos: srdiag/bpm/c30-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C30-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C30-09/x_pos - y_pos: BPM_C30-09/y_pos + x_pos: srdiag/bpm/c30-09/SA_HPosition + y_pos: srdiag/bpm/c30-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C30-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C30-10/x_pos - y_pos: BPM_C30-10/y_pos + x_pos: srdiag/bpm/c30-10/SA_HPosition + y_pos: srdiag/bpm/c30-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C31-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C31-01/x_pos - y_pos: BPM_C31-01/y_pos + x_pos: srdiag/bpm/c31-01/SA_HPosition + y_pos: srdiag/bpm/c31-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C31-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C31-02/x_pos - y_pos: BPM_C31-02/y_pos + x_pos: srdiag/bpm/c31-02/SA_HPosition + y_pos: srdiag/bpm/c31-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C31-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C31-03/x_pos - y_pos: BPM_C31-03/y_pos + x_pos: srdiag/bpm/c31-03/SA_HPosition + y_pos: srdiag/bpm/c31-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C31-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C31-04/x_pos - y_pos: BPM_C31-04/y_pos + x_pos: srdiag/bpm/c31-04/SA_HPosition + y_pos: srdiag/bpm/c31-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C31-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C31-05/x_pos - y_pos: BPM_C31-05/y_pos + x_pos: srdiag/bpm/c31-05/SA_HPosition + y_pos: srdiag/bpm/c31-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C31-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C31-06/x_pos - y_pos: BPM_C31-06/y_pos + x_pos: srdiag/bpm/c31-06/SA_HPosition + y_pos: srdiag/bpm/c31-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C31-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C31-07/x_pos - y_pos: BPM_C31-07/y_pos + x_pos: srdiag/bpm/c31-07/SA_HPosition + y_pos: srdiag/bpm/c31-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C31-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C31-08/x_pos - y_pos: BPM_C31-08/y_pos + x_pos: srdiag/bpm/c31-08/SA_HPosition + y_pos: srdiag/bpm/c31-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C31-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C31-09/x_pos - y_pos: BPM_C31-09/y_pos + x_pos: srdiag/bpm/c31-09/SA_HPosition + y_pos: srdiag/bpm/c31-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C31-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C31-10/x_pos - y_pos: BPM_C31-10/y_pos + x_pos: srdiag/bpm/c31-10/SA_HPosition + y_pos: srdiag/bpm/c31-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C32-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C32-01/x_pos - y_pos: BPM_C32-01/y_pos + x_pos: srdiag/bpm/c32-01/SA_HPosition + y_pos: srdiag/bpm/c32-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C32-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C32-02/x_pos - y_pos: BPM_C32-02/y_pos + x_pos: srdiag/bpm/c32-02/SA_HPosition + y_pos: srdiag/bpm/c32-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C32-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C32-03/x_pos - y_pos: BPM_C32-03/y_pos + x_pos: srdiag/bpm/c32-03/SA_HPosition + y_pos: srdiag/bpm/c32-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C32-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C32-04/x_pos - y_pos: BPM_C32-04/y_pos + x_pos: srdiag/bpm/c32-04/SA_HPosition + y_pos: srdiag/bpm/c32-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C32-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C32-05/x_pos - y_pos: BPM_C32-05/y_pos + x_pos: srdiag/bpm/c32-05/SA_HPosition + y_pos: srdiag/bpm/c32-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C32-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C32-06/x_pos - y_pos: BPM_C32-06/y_pos + x_pos: srdiag/bpm/c32-06/SA_HPosition + y_pos: srdiag/bpm/c32-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C32-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C32-07/x_pos - y_pos: BPM_C32-07/y_pos + x_pos: srdiag/bpm/c32-07/SA_HPosition + y_pos: srdiag/bpm/c32-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C32-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C32-08/x_pos - y_pos: BPM_C32-08/y_pos + x_pos: srdiag/bpm/c32-08/SA_HPosition + y_pos: srdiag/bpm/c32-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C32-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C32-09/x_pos - y_pos: BPM_C32-09/y_pos + x_pos: srdiag/bpm/c32-09/SA_HPosition + y_pos: srdiag/bpm/c32-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C32-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C32-10/x_pos - y_pos: BPM_C32-10/y_pos + x_pos: srdiag/bpm/c32-10/SA_HPosition + y_pos: srdiag/bpm/c32-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C01-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C01-01/x_pos - y_pos: BPM_C01-01/y_pos + x_pos: srdiag/bpm/c01-01/SA_HPosition + y_pos: srdiag/bpm/c01-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C01-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C01-02/x_pos - y_pos: BPM_C01-02/y_pos + x_pos: srdiag/bpm/c01-02/SA_HPosition + y_pos: srdiag/bpm/c01-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C01-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C01-03/x_pos - y_pos: BPM_C01-03/y_pos + x_pos: srdiag/bpm/c01-03/SA_HPosition + y_pos: srdiag/bpm/c01-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C01-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C01-04/x_pos - y_pos: BPM_C01-04/y_pos + x_pos: srdiag/bpm/c01-04/SA_HPosition + y_pos: srdiag/bpm/c01-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C01-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C01-05/x_pos - y_pos: BPM_C01-05/y_pos + x_pos: srdiag/bpm/c01-05/SA_HPosition + y_pos: srdiag/bpm/c01-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C01-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C01-06/x_pos - y_pos: BPM_C01-06/y_pos + x_pos: srdiag/bpm/c01-06/SA_HPosition + y_pos: srdiag/bpm/c01-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C01-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C01-07/x_pos - y_pos: BPM_C01-07/y_pos + x_pos: srdiag/bpm/c01-07/SA_HPosition + y_pos: srdiag/bpm/c01-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C01-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C01-08/x_pos - y_pos: BPM_C01-08/y_pos + x_pos: srdiag/bpm/c01-08/SA_HPosition + y_pos: srdiag/bpm/c01-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C01-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C01-09/x_pos - y_pos: BPM_C01-09/y_pos + x_pos: srdiag/bpm/c01-09/SA_HPosition + y_pos: srdiag/bpm/c01-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C01-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C01-10/x_pos - y_pos: BPM_C01-10/y_pos + x_pos: srdiag/bpm/c01-10/SA_HPosition + y_pos: srdiag/bpm/c01-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C02-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C02-01/x_pos - y_pos: BPM_C02-01/y_pos + x_pos: srdiag/bpm/c02-01/SA_HPosition + y_pos: srdiag/bpm/c02-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C02-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C02-02/x_pos - y_pos: BPM_C02-02/y_pos + x_pos: srdiag/bpm/c02-02/SA_HPosition + y_pos: srdiag/bpm/c02-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C02-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C02-03/x_pos - y_pos: BPM_C02-03/y_pos + x_pos: srdiag/bpm/c02-03/SA_HPosition + y_pos: srdiag/bpm/c02-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C02-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C02-04/x_pos - y_pos: BPM_C02-04/y_pos + x_pos: srdiag/bpm/c02-04/SA_HPosition + y_pos: srdiag/bpm/c02-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C02-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C02-05/x_pos - y_pos: BPM_C02-05/y_pos + x_pos: srdiag/bpm/c02-05/SA_HPosition + y_pos: srdiag/bpm/c02-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C02-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C02-06/x_pos - y_pos: BPM_C02-06/y_pos + x_pos: srdiag/bpm/c02-06/SA_HPosition + y_pos: srdiag/bpm/c02-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C02-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C02-07/x_pos - y_pos: BPM_C02-07/y_pos + x_pos: srdiag/bpm/c02-07/SA_HPosition + y_pos: srdiag/bpm/c02-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C02-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C02-08/x_pos - y_pos: BPM_C02-08/y_pos + x_pos: srdiag/bpm/c02-08/SA_HPosition + y_pos: srdiag/bpm/c02-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C02-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C02-09/x_pos - y_pos: BPM_C02-09/y_pos + x_pos: srdiag/bpm/c02-09/SA_HPosition + y_pos: srdiag/bpm/c02-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C02-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C02-10/x_pos - y_pos: BPM_C02-10/y_pos + x_pos: srdiag/bpm/c02-10/SA_HPosition + y_pos: srdiag/bpm/c02-10/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C03-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C03-01/x_pos - y_pos: BPM_C03-01/y_pos + x_pos: srdiag/bpm/c03-01/SA_HPosition + y_pos: srdiag/bpm/c03-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C03-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C03-02/x_pos - y_pos: BPM_C03-02/y_pos + x_pos: srdiag/bpm/c03-02/SA_HPosition + y_pos: srdiag/bpm/c03-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C03-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C03-03/x_pos - y_pos: BPM_C03-03/y_pos + x_pos: srdiag/bpm/c03-03/SA_HPosition + y_pos: srdiag/bpm/c03-03/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C03-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C03-04/x_pos - y_pos: BPM_C03-04/y_pos + x_pos: srdiag/bpm/c03-04/SA_HPosition + y_pos: srdiag/bpm/c03-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C03-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C03-05/x_pos - y_pos: BPM_C03-05/y_pos + x_pos: srdiag/bpm/c03-05/SA_HPosition + y_pos: srdiag/bpm/c03-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C03-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C03-06/x_pos - y_pos: BPM_C03-06/y_pos + x_pos: srdiag/bpm/c03-06/SA_HPosition + y_pos: srdiag/bpm/c03-06/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C03-07 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C03-07/x_pos - y_pos: BPM_C03-07/y_pos + x_pos: srdiag/bpm/c03-07/SA_HPosition + y_pos: srdiag/bpm/c03-07/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C03-08 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C03-08/x_pos - y_pos: BPM_C03-08/y_pos + x_pos: srdiag/bpm/c03-08/SA_HPosition + y_pos: srdiag/bpm/c03-08/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C03-09 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C03-09/x_pos - y_pos: BPM_C03-09/y_pos + x_pos: srdiag/bpm/c03-09/SA_HPosition + y_pos: srdiag/bpm/c03-09/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C03-10 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C03-10/x_pos - y_pos: BPM_C03-10/y_pos + x_pos: srdiag/bpm/c03-10/SA_HPosition + y_pos: srdiag/bpm/c03-10/SA_VPosition diff --git a/tests/config/bad_conf_duplicate_2.yaml b/tests/config/bad_conf_duplicate_2.yaml index cbd0ee58..9584fa55 100644 --- a/tests/config/bad_conf_duplicate_2.yaml +++ b/tests/config/bad_conf_duplicate_2.yaml @@ -27,17 +27,17 @@ devices: name: BPM_C04-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C04-04/x - y_pos: BPM_C04-04/y + x_pos: srdiag/bpm/c04-04/SA_HPosition + y_pos: srdiag/bpm/c04-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C04-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C04-05/x - y_pos: BPM_C04-05/y + x_pos: srdiag/bpm/c04-05/SA_HPosition + y_pos: srdiag/bpm/c04-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C04-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C04-06/x - y_pos: BPM_C04-06/y + x_pos: srdiag/bpm/c04-06/SA_HPosition + y_pos: srdiag/bpm/c04-06/SA_VPosition diff --git a/tests/config/bad_conf_duplicate_3.yaml b/tests/config/bad_conf_duplicate_3.yaml index cb19caa0..a054c4d6 100644 --- a/tests/config/bad_conf_duplicate_3.yaml +++ b/tests/config/bad_conf_duplicate_3.yaml @@ -26,23 +26,23 @@ devices: name: BPM_C04-04 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C04-04/x - y_pos: BPM_C04-04/y + x_pos: srdiag/bpm/c04-04/SA_HPosition + y_pos: srdiag/bpm/c04-04/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C04-05 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C04-05/x - y_pos: BPM_C04-05/y + x_pos: srdiag/bpm/c04-05/SA_HPosition + y_pos: srdiag/bpm/c04-05/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C04-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C04-06/x - y_pos: BPM_C04-06/y + x_pos: srdiag/bpm/c04-06/SA_HPosition + y_pos: srdiag/bpm/c04-06/SA_VPosition - type: pyaml.bpm.bpm # duplicate device name: BPM_C04-06 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C04-06_2/x - y_pos: BPM_C04-06_2/y + x_pos: srdiag/bpm/c04-06/SA_HPosition + y_pos: srdiag/bpm/c04-06/SA_VPosition diff --git a/tests/config/bpms.yaml b/tests/config/bpms.yaml index 9ec7f130..9937d68e 100644 --- a/tests/config/bpms.yaml +++ b/tests/config/bpms.yaml @@ -19,31 +19,31 @@ devices: name: BPM_C01-01 model: type: pyaml.bpm.bpm_tiltoffset_model - x_pos: BPM_C01-01/x - y_pos: BPM_C01-01/y - x_offset: BPM_C01-01/x_offset - y_offset: BPM_C01-01/y_offset - tilt: BPM_C01-01/tilt + x_pos: srdiag/bpm/c01-01/SA_HPosition + y_pos: srdiag/bpm/c01-01/SA_VPosition + x_offset: srdiag/bpm/c01-01/HOffset + y_offset: srdiag/bpm/c01-01/VOffset + tilt: srdiag/bpm/c01-01/Tilt_Angle - type: pyaml.bpm.bpm name: BPM_C01-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C01-02/x - y_pos: BPM_C01-02/y + x_pos: srdiag/bpm/c01-02/SA_HPosition + y_pos: srdiag/bpm/c01-02/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C01-03 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C01-03/x - y_pos: BPM_C01-03/y + x_pos: srdiag/bpm/c01-03/SA_HPosition + y_pos: srdiag/bpm/c01-03/SA_VPosition - 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: BPM_C01-04/x - y_pos: BPM_C01-04/y + x_pos: srdiag/bpm/c01-04/Position + y_pos: srdiag/bpm/c01-04/Position - type: pyaml.magnet.cfm_magnet name: SH1A-C01 #Name of the element in the lattice model mapping: diff --git a/tests/config/catalog_named.yaml b/tests/config/catalog_named.yaml index 2ed08ec9..ae465033 100644 --- a/tests/config/catalog_named.yaml +++ b/tests/config/catalog_named.yaml @@ -18,31 +18,31 @@ catalogs: name: device-catalog entries: - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-01/x + key: srdiag/bpm/c01-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-01/SA_HPosition unit: mm - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-01/y + key: srdiag/bpm/c01-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-01/SA_VPosition unit: mm - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-01/x_offset + key: srdiag/bpm/c01-01/HOffset device: type: tango.pyaml.attribute attribute: srdiag/bpm/c01-01/HOffset unit: mm - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-01/y_offset + key: srdiag/bpm/c01-01/VOffset device: type: tango.pyaml.attribute attribute: srdiag/bpm/c01-01/VOffset unit: mm - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-01/tilt + key: srdiag/bpm/c01-01/Tilt_Angle device: type: tango.pyaml.attribute attribute: srdiag/bpm/c01-01/Tilt_Angle @@ -52,8 +52,8 @@ devices: name: BPM_C01-01 model: type: pyaml.bpm.bpm_tiltoffset_model - x_pos: BPM_C01-01/x - y_pos: BPM_C01-01/y - x_offset: BPM_C01-01/x_offset - y_offset: BPM_C01-01/y_offset - tilt: BPM_C01-01/tilt + x_pos: srdiag/bpm/c01-01/SA_HPosition + y_pos: srdiag/bpm/c01-01/SA_VPosition + x_offset: srdiag/bpm/c01-01/HOffset + y_offset: srdiag/bpm/c01-01/VOffset + tilt: srdiag/bpm/c01-01/Tilt_Angle diff --git a/tests/config/catalogs/bpms_catalogs.yaml b/tests/config/catalogs/bpms_catalogs.yaml index 8ab55478..e04a28c2 100644 --- a/tests/config/catalogs/bpms_catalogs.yaml +++ b/tests/config/catalogs/bpms_catalogs.yaml @@ -2,67 +2,61 @@ type: pyaml.configuration.static_catalog name: bpm-catalog entries: - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-01/x + key: srdiag/bpm/c01-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-01/SA_HPosition unit: mm - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-01/y + key: srdiag/bpm/c01-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-01/SA_VPosition unit: mm - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-01/x_offset + key: srdiag/bpm/c01-01/HOffset device: type: tango.pyaml.attribute attribute: srdiag/bpm/c01-01/HOffset unit: mm - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-01/y_offset + key: srdiag/bpm/c01-01/VOffset device: type: tango.pyaml.attribute attribute: srdiag/bpm/c01-01/VOffset unit: mm - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-01/tilt + key: srdiag/bpm/c01-01/Tilt_Angle device: type: tango.pyaml.attribute attribute: srdiag/bpm/c01-01/Tilt_Angle unit: rad - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-02/x + key: srdiag/bpm/c01-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-02/SA_HPosition unit: mm - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-02/y + key: srdiag/bpm/c01-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-02/SA_VPosition unit: mm - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-03/x + key: srdiag/bpm/c01-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-03/SA_HPosition unit: mm - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-03/y + key: srdiag/bpm/c01-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-03/SA_VPosition unit: mm - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-04/x - device: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-04/Position - unit: mm - - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-04/y + key: srdiag/bpm/c01-04/Position device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-04/Position diff --git a/tests/config/catalogs/ebs_orbit_bpm_catalogs.yaml b/tests/config/catalogs/ebs_orbit_bpm_catalogs.yaml index 0fce64de..d4e823a0 100644 --- a/tests/config/catalogs/ebs_orbit_bpm_catalogs.yaml +++ b/tests/config/catalogs/ebs_orbit_bpm_catalogs.yaml @@ -2,3841 +2,3841 @@ type: pyaml.configuration.static_catalog name: bpm-catalog entries: - type: pyaml.configuration.static_catalog_entry - key: BPM_C04-01/x_pos + key: srdiag/bpm/c04-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-01/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C04-01/y_pos + key: srdiag/bpm/c04-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-01/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C04-02/x_pos + key: srdiag/bpm/c04-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-02/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C04-02/y_pos + key: srdiag/bpm/c04-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-02/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C04-03/x_pos + key: srdiag/bpm/c04-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-03/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C04-03/y_pos + key: srdiag/bpm/c04-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-03/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C04-04/x_pos + key: srdiag/bpm/c04-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-04/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C04-04/y_pos + key: srdiag/bpm/c04-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-04/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C04-05/x_pos + key: srdiag/bpm/c04-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-05/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C04-05/y_pos + key: srdiag/bpm/c04-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-05/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C04-06/x_pos + key: srdiag/bpm/c04-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-06/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C04-06/y_pos + key: srdiag/bpm/c04-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-06/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C04-07/x_pos + key: srdiag/bpm/c04-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-07/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C04-07/y_pos + key: srdiag/bpm/c04-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-07/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C04-08/x_pos + key: srdiag/bpm/c04-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-08/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C04-08/y_pos + key: srdiag/bpm/c04-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-08/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C04-09/x_pos + key: srdiag/bpm/c04-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-09/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C04-09/y_pos + key: srdiag/bpm/c04-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-09/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C04-10/x_pos + key: srdiag/bpm/c04-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-10/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C04-10/y_pos + key: srdiag/bpm/c04-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-10/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C05-01/x_pos + key: srdiag/bpm/c05-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-01/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C05-01/y_pos + key: srdiag/bpm/c05-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-01/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C05-02/x_pos + key: srdiag/bpm/c05-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-02/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C05-02/y_pos + key: srdiag/bpm/c05-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-02/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C05-03/x_pos + key: srdiag/bpm/c05-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-03/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C05-03/y_pos + key: srdiag/bpm/c05-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-03/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C05-04/x_pos + key: srdiag/bpm/c05-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-04/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C05-04/y_pos + key: srdiag/bpm/c05-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-04/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C05-05/x_pos + key: srdiag/bpm/c05-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-05/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C05-05/y_pos + key: srdiag/bpm/c05-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-05/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C05-06/x_pos + key: srdiag/bpm/c05-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-06/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C05-06/y_pos + key: srdiag/bpm/c05-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-06/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C05-07/x_pos + key: srdiag/bpm/c05-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-07/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C05-07/y_pos + key: srdiag/bpm/c05-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-07/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C05-08/x_pos + key: srdiag/bpm/c05-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-08/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C05-08/y_pos + key: srdiag/bpm/c05-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-08/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C05-09/x_pos + key: srdiag/bpm/c05-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-09/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C05-09/y_pos + key: srdiag/bpm/c05-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-09/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C05-10/x_pos + key: srdiag/bpm/c05-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-10/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C05-10/y_pos + key: srdiag/bpm/c05-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-10/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C06-01/x_pos + key: srdiag/bpm/c06-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-01/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C06-01/y_pos + key: srdiag/bpm/c06-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-01/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C06-02/x_pos + key: srdiag/bpm/c06-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-02/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C06-02/y_pos + key: srdiag/bpm/c06-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-02/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C06-03/x_pos + key: srdiag/bpm/c06-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-03/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C06-03/y_pos + key: srdiag/bpm/c06-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-03/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C06-04/x_pos + key: srdiag/bpm/c06-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-04/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C06-04/y_pos + key: srdiag/bpm/c06-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-04/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C06-05/x_pos + key: srdiag/bpm/c06-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-05/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C06-05/y_pos + key: srdiag/bpm/c06-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-05/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C06-06/x_pos + key: srdiag/bpm/c06-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-06/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C06-06/y_pos + key: srdiag/bpm/c06-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-06/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C06-07/x_pos + key: srdiag/bpm/c06-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-07/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C06-07/y_pos + key: srdiag/bpm/c06-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-07/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C06-08/x_pos + key: srdiag/bpm/c06-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-08/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C06-08/y_pos + key: srdiag/bpm/c06-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-08/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C06-09/x_pos + key: srdiag/bpm/c06-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-09/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C06-09/y_pos + key: srdiag/bpm/c06-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-09/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C06-10/x_pos + key: srdiag/bpm/c06-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-10/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C06-10/y_pos + key: srdiag/bpm/c06-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-10/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C07-01/x_pos + key: srdiag/bpm/c07-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-01/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C07-01/y_pos + key: srdiag/bpm/c07-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-01/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C07-02/x_pos + key: srdiag/bpm/c07-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-02/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C07-02/y_pos + key: srdiag/bpm/c07-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-02/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C07-03/x_pos + key: srdiag/bpm/c07-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-03/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C07-03/y_pos + key: srdiag/bpm/c07-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-03/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C07-04/x_pos + key: srdiag/bpm/c07-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-04/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C07-04/y_pos + key: srdiag/bpm/c07-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-04/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C07-05/x_pos + key: srdiag/bpm/c07-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-05/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C07-05/y_pos + key: srdiag/bpm/c07-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-05/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C07-06/x_pos + key: srdiag/bpm/c07-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-06/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C07-06/y_pos + key: srdiag/bpm/c07-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-06/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C07-07/x_pos + key: srdiag/bpm/c07-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-07/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C07-07/y_pos + key: srdiag/bpm/c07-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-07/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C07-08/x_pos + key: srdiag/bpm/c07-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-08/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C07-08/y_pos + key: srdiag/bpm/c07-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-08/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C07-09/x_pos + key: srdiag/bpm/c07-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-09/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C07-09/y_pos + key: srdiag/bpm/c07-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-09/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C07-10/x_pos + key: srdiag/bpm/c07-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-10/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C07-10/y_pos + key: srdiag/bpm/c07-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-10/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C08-01/x_pos + key: srdiag/bpm/c08-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-01/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C08-01/y_pos + key: srdiag/bpm/c08-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-01/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C08-02/x_pos + key: srdiag/bpm/c08-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-02/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C08-02/y_pos + key: srdiag/bpm/c08-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-02/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C08-03/x_pos + key: srdiag/bpm/c08-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-03/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C08-03/y_pos + key: srdiag/bpm/c08-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-03/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C08-04/x_pos + key: srdiag/bpm/c08-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-04/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C08-04/y_pos + key: srdiag/bpm/c08-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-04/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C08-05/x_pos + key: srdiag/bpm/c08-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-05/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C08-05/y_pos + key: srdiag/bpm/c08-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-05/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C08-06/x_pos + key: srdiag/bpm/c08-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-06/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C08-06/y_pos + key: srdiag/bpm/c08-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-06/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C08-07/x_pos + key: srdiag/bpm/c08-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-07/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C08-07/y_pos + key: srdiag/bpm/c08-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-07/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C08-08/x_pos + key: srdiag/bpm/c08-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-08/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C08-08/y_pos + key: srdiag/bpm/c08-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-08/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C08-09/x_pos + key: srdiag/bpm/c08-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-09/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C08-09/y_pos + key: srdiag/bpm/c08-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-09/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C08-10/x_pos + key: srdiag/bpm/c08-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-10/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C08-10/y_pos + key: srdiag/bpm/c08-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-10/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C09-01/x_pos + key: srdiag/bpm/c09-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-01/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C09-01/y_pos + key: srdiag/bpm/c09-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-01/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C09-02/x_pos + key: srdiag/bpm/c09-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-02/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C09-02/y_pos + key: srdiag/bpm/c09-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-02/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C09-03/x_pos + key: srdiag/bpm/c09-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-03/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C09-03/y_pos + key: srdiag/bpm/c09-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-03/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C09-04/x_pos + key: srdiag/bpm/c09-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-04/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C09-04/y_pos + key: srdiag/bpm/c09-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-04/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C09-05/x_pos + key: srdiag/bpm/c09-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-05/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C09-05/y_pos + key: srdiag/bpm/c09-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-05/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C09-06/x_pos + key: srdiag/bpm/c09-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-06/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C09-06/y_pos + key: srdiag/bpm/c09-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-06/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C09-07/x_pos + key: srdiag/bpm/c09-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-07/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C09-07/y_pos + key: srdiag/bpm/c09-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-07/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C09-08/x_pos + key: srdiag/bpm/c09-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-08/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C09-08/y_pos + key: srdiag/bpm/c09-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-08/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C09-09/x_pos + key: srdiag/bpm/c09-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-09/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C09-09/y_pos + key: srdiag/bpm/c09-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-09/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C09-10/x_pos + key: srdiag/bpm/c09-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-10/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C09-10/y_pos + key: srdiag/bpm/c09-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-10/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C10-01/x_pos + key: srdiag/bpm/c10-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-01/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C10-01/y_pos + key: srdiag/bpm/c10-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-01/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C10-02/x_pos + key: srdiag/bpm/c10-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-02/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C10-02/y_pos + key: srdiag/bpm/c10-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-02/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C10-03/x_pos + key: srdiag/bpm/c10-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-03/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C10-03/y_pos + key: srdiag/bpm/c10-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-03/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C10-04/x_pos + key: srdiag/bpm/c10-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-04/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C10-04/y_pos + key: srdiag/bpm/c10-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-04/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C10-05/x_pos + key: srdiag/bpm/c10-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-05/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C10-05/y_pos + key: srdiag/bpm/c10-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-05/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C10-06/x_pos + key: srdiag/bpm/c10-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-06/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C10-06/y_pos + key: srdiag/bpm/c10-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-06/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C10-07/x_pos + key: srdiag/bpm/c10-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-07/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C10-07/y_pos + key: srdiag/bpm/c10-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-07/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C10-08/x_pos + key: srdiag/bpm/c10-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-08/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C10-08/y_pos + key: srdiag/bpm/c10-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-08/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C10-09/x_pos + key: srdiag/bpm/c10-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-09/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C10-09/y_pos + key: srdiag/bpm/c10-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-09/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C10-10/x_pos + key: srdiag/bpm/c10-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-10/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C10-10/y_pos + key: srdiag/bpm/c10-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-10/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C11-01/x_pos + key: srdiag/bpm/c11-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-01/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C11-01/y_pos + key: srdiag/bpm/c11-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-01/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C11-02/x_pos + key: srdiag/bpm/c11-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-02/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C11-02/y_pos + key: srdiag/bpm/c11-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-02/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C11-03/x_pos + key: srdiag/bpm/c11-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-03/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C11-03/y_pos + key: srdiag/bpm/c11-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-03/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C11-04/x_pos + key: srdiag/bpm/c11-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-04/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C11-04/y_pos + key: srdiag/bpm/c11-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-04/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C11-05/x_pos + key: srdiag/bpm/c11-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-05/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C11-05/y_pos + key: srdiag/bpm/c11-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-05/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C11-06/x_pos + key: srdiag/bpm/c11-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-06/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C11-06/y_pos + key: srdiag/bpm/c11-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-06/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C11-07/x_pos + key: srdiag/bpm/c11-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-07/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C11-07/y_pos + key: srdiag/bpm/c11-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-07/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C11-08/x_pos + key: srdiag/bpm/c11-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-08/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C11-08/y_pos + key: srdiag/bpm/c11-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-08/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C11-09/x_pos + key: srdiag/bpm/c11-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-09/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C11-09/y_pos + key: srdiag/bpm/c11-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-09/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C11-10/x_pos + key: srdiag/bpm/c11-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-10/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C11-10/y_pos + key: srdiag/bpm/c11-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-10/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C12-01/x_pos + key: srdiag/bpm/c12-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-01/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C12-01/y_pos + key: srdiag/bpm/c12-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-01/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C12-02/x_pos + key: srdiag/bpm/c12-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-02/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C12-02/y_pos + key: srdiag/bpm/c12-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-02/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C12-03/x_pos + key: srdiag/bpm/c12-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-03/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C12-03/y_pos + key: srdiag/bpm/c12-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-03/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C12-04/x_pos + key: srdiag/bpm/c12-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-04/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C12-04/y_pos + key: srdiag/bpm/c12-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-04/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C12-05/x_pos + key: srdiag/bpm/c12-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-05/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C12-05/y_pos + key: srdiag/bpm/c12-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-05/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C12-06/x_pos + key: srdiag/bpm/c12-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-06/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C12-06/y_pos + key: srdiag/bpm/c12-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-06/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C12-07/x_pos + key: srdiag/bpm/c12-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-07/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C12-07/y_pos + key: srdiag/bpm/c12-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-07/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C12-08/x_pos + key: srdiag/bpm/c12-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-08/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C12-08/y_pos + key: srdiag/bpm/c12-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-08/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C12-09/x_pos + key: srdiag/bpm/c12-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-09/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C12-09/y_pos + key: srdiag/bpm/c12-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-09/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C12-10/x_pos + key: srdiag/bpm/c12-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-10/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C12-10/y_pos + key: srdiag/bpm/c12-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-10/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C13-01/x_pos + key: srdiag/bpm/c13-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-01/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C13-01/y_pos + key: srdiag/bpm/c13-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-01/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C13-02/x_pos + key: srdiag/bpm/c13-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-02/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C13-02/y_pos + key: srdiag/bpm/c13-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-02/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C13-03/x_pos + key: srdiag/bpm/c13-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-03/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C13-03/y_pos + key: srdiag/bpm/c13-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-03/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C13-04/x_pos + key: srdiag/bpm/c13-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-04/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C13-04/y_pos + key: srdiag/bpm/c13-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-04/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C13-05/x_pos + key: srdiag/bpm/c13-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-05/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C13-05/y_pos + key: srdiag/bpm/c13-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-05/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C13-06/x_pos + key: srdiag/bpm/c13-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-06/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C13-06/y_pos + key: srdiag/bpm/c13-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-06/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C13-07/x_pos + key: srdiag/bpm/c13-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-07/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C13-07/y_pos + key: srdiag/bpm/c13-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-07/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C13-08/x_pos + key: srdiag/bpm/c13-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-08/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C13-08/y_pos + key: srdiag/bpm/c13-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-08/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C13-09/x_pos + key: srdiag/bpm/c13-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-09/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C13-09/y_pos + key: srdiag/bpm/c13-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-09/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C13-10/x_pos + key: srdiag/bpm/c13-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-10/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C13-10/y_pos + key: srdiag/bpm/c13-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-10/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C14-01/x_pos + key: srdiag/bpm/c14-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-01/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C14-01/y_pos + key: srdiag/bpm/c14-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-01/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C14-02/x_pos + key: srdiag/bpm/c14-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-02/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C14-02/y_pos + key: srdiag/bpm/c14-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-02/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C14-03/x_pos + key: srdiag/bpm/c14-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-03/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C14-03/y_pos + key: srdiag/bpm/c14-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-03/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C14-04/x_pos + key: srdiag/bpm/c14-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-04/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C14-04/y_pos + key: srdiag/bpm/c14-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-04/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C14-05/x_pos + key: srdiag/bpm/c14-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-05/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C14-05/y_pos + key: srdiag/bpm/c14-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-05/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C14-06/x_pos + key: srdiag/bpm/c14-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-06/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C14-06/y_pos + key: srdiag/bpm/c14-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-06/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C14-07/x_pos + key: srdiag/bpm/c14-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-07/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C14-07/y_pos + key: srdiag/bpm/c14-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-07/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C14-08/x_pos + key: srdiag/bpm/c14-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-08/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C14-08/y_pos + key: srdiag/bpm/c14-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-08/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C14-09/x_pos + key: srdiag/bpm/c14-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-09/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C14-09/y_pos + key: srdiag/bpm/c14-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-09/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C14-10/x_pos + key: srdiag/bpm/c14-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-10/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C14-10/y_pos + key: srdiag/bpm/c14-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-10/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C15-01/x_pos + key: srdiag/bpm/c15-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-01/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C15-01/y_pos + key: srdiag/bpm/c15-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-01/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C15-02/x_pos + key: srdiag/bpm/c15-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-02/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C15-02/y_pos + key: srdiag/bpm/c15-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-02/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C15-03/x_pos + key: srdiag/bpm/c15-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-03/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C15-03/y_pos + key: srdiag/bpm/c15-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-03/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C15-04/x_pos + key: srdiag/bpm/c15-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-04/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C15-04/y_pos + key: srdiag/bpm/c15-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-04/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C15-05/x_pos + key: srdiag/bpm/c15-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-05/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C15-05/y_pos + key: srdiag/bpm/c15-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-05/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C15-06/x_pos + key: srdiag/bpm/c15-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-06/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C15-06/y_pos + key: srdiag/bpm/c15-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-06/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C15-07/x_pos + key: srdiag/bpm/c15-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-07/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C15-07/y_pos + key: srdiag/bpm/c15-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-07/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C15-08/x_pos + key: srdiag/bpm/c15-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-08/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C15-08/y_pos + key: srdiag/bpm/c15-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-08/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C15-09/x_pos + key: srdiag/bpm/c15-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-09/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C15-09/y_pos + key: srdiag/bpm/c15-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-09/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C15-10/x_pos + key: srdiag/bpm/c15-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-10/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C15-10/y_pos + key: srdiag/bpm/c15-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-10/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C16-01/x_pos + key: srdiag/bpm/c16-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-01/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C16-01/y_pos + key: srdiag/bpm/c16-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-01/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C16-02/x_pos + key: srdiag/bpm/c16-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-02/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C16-02/y_pos + key: srdiag/bpm/c16-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-02/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C16-03/x_pos + key: srdiag/bpm/c16-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-03/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C16-03/y_pos + key: srdiag/bpm/c16-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-03/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C16-04/x_pos + key: srdiag/bpm/c16-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-04/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C16-04/y_pos + key: srdiag/bpm/c16-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-04/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C16-05/x_pos + key: srdiag/bpm/c16-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-05/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C16-05/y_pos + key: srdiag/bpm/c16-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-05/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C16-06/x_pos + key: srdiag/bpm/c16-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-06/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C16-06/y_pos + key: srdiag/bpm/c16-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-06/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C16-07/x_pos + key: srdiag/bpm/c16-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-07/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C16-07/y_pos + key: srdiag/bpm/c16-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-07/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C16-08/x_pos + key: srdiag/bpm/c16-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-08/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C16-08/y_pos + key: srdiag/bpm/c16-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-08/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C16-09/x_pos + key: srdiag/bpm/c16-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-09/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C16-09/y_pos + key: srdiag/bpm/c16-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-09/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C16-10/x_pos + key: srdiag/bpm/c16-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-10/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C16-10/y_pos + key: srdiag/bpm/c16-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-10/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C17-01/x_pos + key: srdiag/bpm/c17-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-01/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C17-01/y_pos + key: srdiag/bpm/c17-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-01/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C17-02/x_pos + key: srdiag/bpm/c17-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-02/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C17-02/y_pos + key: srdiag/bpm/c17-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-02/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C17-03/x_pos + key: srdiag/bpm/c17-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-03/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C17-03/y_pos + key: srdiag/bpm/c17-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-03/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C17-04/x_pos + key: srdiag/bpm/c17-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-04/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C17-04/y_pos + key: srdiag/bpm/c17-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-04/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C17-05/x_pos + key: srdiag/bpm/c17-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-05/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C17-05/y_pos + key: srdiag/bpm/c17-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-05/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C17-06/x_pos + key: srdiag/bpm/c17-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-06/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C17-06/y_pos + key: srdiag/bpm/c17-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-06/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C17-07/x_pos + key: srdiag/bpm/c17-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-07/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C17-07/y_pos + key: srdiag/bpm/c17-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-07/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C17-08/x_pos + key: srdiag/bpm/c17-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-08/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C17-08/y_pos + key: srdiag/bpm/c17-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-08/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C17-09/x_pos + key: srdiag/bpm/c17-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-09/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C17-09/y_pos + key: srdiag/bpm/c17-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-09/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C17-10/x_pos + key: srdiag/bpm/c17-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-10/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C17-10/y_pos + key: srdiag/bpm/c17-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-10/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C18-01/x_pos + key: srdiag/bpm/c18-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-01/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C18-01/y_pos + key: srdiag/bpm/c18-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-01/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C18-02/x_pos + key: srdiag/bpm/c18-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-02/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C18-02/y_pos + key: srdiag/bpm/c18-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-02/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C18-03/x_pos + key: srdiag/bpm/c18-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-03/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C18-03/y_pos + key: srdiag/bpm/c18-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-03/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C18-04/x_pos + key: srdiag/bpm/c18-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-04/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C18-04/y_pos + key: srdiag/bpm/c18-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-04/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C18-05/x_pos + key: srdiag/bpm/c18-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-05/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C18-05/y_pos + key: srdiag/bpm/c18-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-05/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C18-06/x_pos + key: srdiag/bpm/c18-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-06/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C18-06/y_pos + key: srdiag/bpm/c18-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-06/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C18-07/x_pos + key: srdiag/bpm/c18-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-07/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C18-07/y_pos + key: srdiag/bpm/c18-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-07/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C18-08/x_pos + key: srdiag/bpm/c18-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-08/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C18-08/y_pos + key: srdiag/bpm/c18-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-08/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C18-09/x_pos + key: srdiag/bpm/c18-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-09/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C18-09/y_pos + key: srdiag/bpm/c18-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-09/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C18-10/x_pos + key: srdiag/bpm/c18-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-10/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C18-10/y_pos + key: srdiag/bpm/c18-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-10/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C19-01/x_pos + key: srdiag/bpm/c19-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-01/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C19-01/y_pos + key: srdiag/bpm/c19-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-01/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C19-02/x_pos + key: srdiag/bpm/c19-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-02/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C19-02/y_pos + key: srdiag/bpm/c19-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-02/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C19-03/x_pos + key: srdiag/bpm/c19-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-03/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C19-03/y_pos + key: srdiag/bpm/c19-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-03/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C19-04/x_pos + key: srdiag/bpm/c19-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-04/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C19-04/y_pos + key: srdiag/bpm/c19-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-04/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C19-05/x_pos + key: srdiag/bpm/c19-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-05/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C19-05/y_pos + key: srdiag/bpm/c19-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-05/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C19-06/x_pos + key: srdiag/bpm/c19-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-06/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C19-06/y_pos + key: srdiag/bpm/c19-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-06/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C19-07/x_pos + key: srdiag/bpm/c19-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-07/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C19-07/y_pos + key: srdiag/bpm/c19-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-07/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C19-08/x_pos + key: srdiag/bpm/c19-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-08/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C19-08/y_pos + key: srdiag/bpm/c19-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-08/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C19-09/x_pos + key: srdiag/bpm/c19-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-09/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C19-09/y_pos + key: srdiag/bpm/c19-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-09/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C19-10/x_pos + key: srdiag/bpm/c19-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-10/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C19-10/y_pos + key: srdiag/bpm/c19-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-10/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C20-01/x_pos + key: srdiag/bpm/c20-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-01/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C20-01/y_pos + key: srdiag/bpm/c20-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-01/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C20-02/x_pos + key: srdiag/bpm/c20-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-02/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C20-02/y_pos + key: srdiag/bpm/c20-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-02/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C20-03/x_pos + key: srdiag/bpm/c20-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-03/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C20-03/y_pos + key: srdiag/bpm/c20-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-03/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C20-04/x_pos + key: srdiag/bpm/c20-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-04/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C20-04/y_pos + key: srdiag/bpm/c20-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-04/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C20-05/x_pos + key: srdiag/bpm/c20-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-05/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C20-05/y_pos + key: srdiag/bpm/c20-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-05/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C20-06/x_pos + key: srdiag/bpm/c20-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-06/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C20-06/y_pos + key: srdiag/bpm/c20-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-06/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C20-07/x_pos + key: srdiag/bpm/c20-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-07/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C20-07/y_pos + key: srdiag/bpm/c20-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-07/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C20-08/x_pos + key: srdiag/bpm/c20-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-08/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C20-08/y_pos + key: srdiag/bpm/c20-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-08/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C20-09/x_pos + key: srdiag/bpm/c20-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-09/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C20-09/y_pos + key: srdiag/bpm/c20-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-09/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C20-10/x_pos + key: srdiag/bpm/c20-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-10/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C20-10/y_pos + key: srdiag/bpm/c20-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-10/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C21-01/x_pos + key: srdiag/bpm/c21-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-01/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C21-01/y_pos + key: srdiag/bpm/c21-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-01/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C21-02/x_pos + key: srdiag/bpm/c21-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-02/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C21-02/y_pos + key: srdiag/bpm/c21-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-02/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C21-03/x_pos + key: srdiag/bpm/c21-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-03/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C21-03/y_pos + key: srdiag/bpm/c21-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-03/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C21-04/x_pos + key: srdiag/bpm/c21-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-04/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C21-04/y_pos + key: srdiag/bpm/c21-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-04/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C21-05/x_pos + key: srdiag/bpm/c21-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-05/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C21-05/y_pos + key: srdiag/bpm/c21-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-05/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C21-06/x_pos + key: srdiag/bpm/c21-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-06/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C21-06/y_pos + key: srdiag/bpm/c21-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-06/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C21-07/x_pos + key: srdiag/bpm/c21-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-07/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C21-07/y_pos + key: srdiag/bpm/c21-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-07/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C21-08/x_pos + key: srdiag/bpm/c21-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-08/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C21-08/y_pos + key: srdiag/bpm/c21-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-08/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C21-09/x_pos + key: srdiag/bpm/c21-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-09/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C21-09/y_pos + key: srdiag/bpm/c21-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-09/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C21-10/x_pos + key: srdiag/bpm/c21-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-10/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C21-10/y_pos + key: srdiag/bpm/c21-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-10/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C22-01/x_pos + key: srdiag/bpm/c22-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-01/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C22-01/y_pos + key: srdiag/bpm/c22-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-01/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C22-02/x_pos + key: srdiag/bpm/c22-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-02/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C22-02/y_pos + key: srdiag/bpm/c22-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-02/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C22-03/x_pos + key: srdiag/bpm/c22-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-03/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C22-03/y_pos + key: srdiag/bpm/c22-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-03/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C22-04/x_pos + key: srdiag/bpm/c22-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-04/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C22-04/y_pos + key: srdiag/bpm/c22-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-04/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C22-05/x_pos + key: srdiag/bpm/c22-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-05/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C22-05/y_pos + key: srdiag/bpm/c22-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-05/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C22-06/x_pos + key: srdiag/bpm/c22-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-06/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C22-06/y_pos + key: srdiag/bpm/c22-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-06/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C22-07/x_pos + key: srdiag/bpm/c22-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-07/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C22-07/y_pos + key: srdiag/bpm/c22-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-07/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C22-08/x_pos + key: srdiag/bpm/c22-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-08/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C22-08/y_pos + key: srdiag/bpm/c22-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-08/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C22-09/x_pos + key: srdiag/bpm/c22-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-09/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C22-09/y_pos + key: srdiag/bpm/c22-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-09/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C22-10/x_pos + key: srdiag/bpm/c22-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-10/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C22-10/y_pos + key: srdiag/bpm/c22-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-10/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C23-01/x_pos + key: srdiag/bpm/c23-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-01/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C23-01/y_pos + key: srdiag/bpm/c23-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-01/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C23-02/x_pos + key: srdiag/bpm/c23-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-02/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C23-02/y_pos + key: srdiag/bpm/c23-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-02/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C23-03/x_pos + key: srdiag/bpm/c23-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-03/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C23-03/y_pos + key: srdiag/bpm/c23-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-03/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C23-04/x_pos + key: srdiag/bpm/c23-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-04/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C23-04/y_pos + key: srdiag/bpm/c23-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-04/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C23-05/x_pos + key: srdiag/bpm/c23-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-05/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C23-05/y_pos + key: srdiag/bpm/c23-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-05/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C23-06/x_pos + key: srdiag/bpm/c23-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-06/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C23-06/y_pos + key: srdiag/bpm/c23-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-06/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C23-07/x_pos + key: srdiag/bpm/c23-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-07/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C23-07/y_pos + key: srdiag/bpm/c23-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-07/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C23-08/x_pos + key: srdiag/bpm/c23-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-08/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C23-08/y_pos + key: srdiag/bpm/c23-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-08/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C23-09/x_pos + key: srdiag/bpm/c23-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-09/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C23-09/y_pos + key: srdiag/bpm/c23-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-09/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C23-10/x_pos + key: srdiag/bpm/c23-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-10/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C23-10/y_pos + key: srdiag/bpm/c23-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-10/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C24-01/x_pos + key: srdiag/bpm/c24-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-01/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C24-01/y_pos + key: srdiag/bpm/c24-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-01/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C24-02/x_pos + key: srdiag/bpm/c24-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-02/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C24-02/y_pos + key: srdiag/bpm/c24-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-02/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C24-03/x_pos + key: srdiag/bpm/c24-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-03/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C24-03/y_pos + key: srdiag/bpm/c24-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-03/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C24-04/x_pos + key: srdiag/bpm/c24-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-04/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C24-04/y_pos + key: srdiag/bpm/c24-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-04/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C24-05/x_pos + key: srdiag/bpm/c24-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-05/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C24-05/y_pos + key: srdiag/bpm/c24-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-05/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C24-06/x_pos + key: srdiag/bpm/c24-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-06/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C24-06/y_pos + key: srdiag/bpm/c24-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-06/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C24-07/x_pos + key: srdiag/bpm/c24-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-07/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C24-07/y_pos + key: srdiag/bpm/c24-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-07/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C24-08/x_pos + key: srdiag/bpm/c24-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-08/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C24-08/y_pos + key: srdiag/bpm/c24-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-08/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C24-09/x_pos + key: srdiag/bpm/c24-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-09/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C24-09/y_pos + key: srdiag/bpm/c24-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-09/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C24-10/x_pos + key: srdiag/bpm/c24-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-10/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C24-10/y_pos + key: srdiag/bpm/c24-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-10/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C25-01/x_pos + key: srdiag/bpm/c25-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-01/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C25-01/y_pos + key: srdiag/bpm/c25-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-01/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C25-02/x_pos + key: srdiag/bpm/c25-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-02/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C25-02/y_pos + key: srdiag/bpm/c25-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-02/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C25-03/x_pos + key: srdiag/bpm/c25-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-03/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C25-03/y_pos + key: srdiag/bpm/c25-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-03/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C25-04/x_pos + key: srdiag/bpm/c25-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-04/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C25-04/y_pos + key: srdiag/bpm/c25-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-04/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C25-05/x_pos + key: srdiag/bpm/c25-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-05/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C25-05/y_pos + key: srdiag/bpm/c25-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-05/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C25-06/x_pos + key: srdiag/bpm/c25-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-06/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C25-06/y_pos + key: srdiag/bpm/c25-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-06/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C25-07/x_pos + key: srdiag/bpm/c25-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-07/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C25-07/y_pos + key: srdiag/bpm/c25-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-07/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C25-08/x_pos + key: srdiag/bpm/c25-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-08/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C25-08/y_pos + key: srdiag/bpm/c25-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-08/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C25-09/x_pos + key: srdiag/bpm/c25-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-09/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C25-09/y_pos + key: srdiag/bpm/c25-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-09/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C25-10/x_pos + key: srdiag/bpm/c25-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-10/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C25-10/y_pos + key: srdiag/bpm/c25-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-10/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C26-01/x_pos + key: srdiag/bpm/c26-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-01/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C26-01/y_pos + key: srdiag/bpm/c26-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-01/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C26-02/x_pos + key: srdiag/bpm/c26-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-02/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C26-02/y_pos + key: srdiag/bpm/c26-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-02/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C26-03/x_pos + key: srdiag/bpm/c26-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-03/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C26-03/y_pos + key: srdiag/bpm/c26-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-03/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C26-04/x_pos + key: srdiag/bpm/c26-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-04/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C26-04/y_pos + key: srdiag/bpm/c26-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-04/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C26-05/x_pos + key: srdiag/bpm/c26-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-05/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C26-05/y_pos + key: srdiag/bpm/c26-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-05/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C26-06/x_pos + key: srdiag/bpm/c26-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-06/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C26-06/y_pos + key: srdiag/bpm/c26-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-06/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C26-07/x_pos + key: srdiag/bpm/c26-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-07/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C26-07/y_pos + key: srdiag/bpm/c26-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-07/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C26-08/x_pos + key: srdiag/bpm/c26-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-08/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C26-08/y_pos + key: srdiag/bpm/c26-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-08/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C26-09/x_pos + key: srdiag/bpm/c26-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-09/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C26-09/y_pos + key: srdiag/bpm/c26-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-09/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C26-10/x_pos + key: srdiag/bpm/c26-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-10/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C26-10/y_pos + key: srdiag/bpm/c26-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-10/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C27-01/x_pos + key: srdiag/bpm/c27-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-01/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C27-01/y_pos + key: srdiag/bpm/c27-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-01/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C27-02/x_pos + key: srdiag/bpm/c27-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-02/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C27-02/y_pos + key: srdiag/bpm/c27-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-02/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C27-03/x_pos + key: srdiag/bpm/c27-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-03/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C27-03/y_pos + key: srdiag/bpm/c27-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-03/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C27-04/x_pos + key: srdiag/bpm/c27-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-04/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C27-04/y_pos + key: srdiag/bpm/c27-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-04/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C27-05/x_pos + key: srdiag/bpm/c27-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-05/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C27-05/y_pos + key: srdiag/bpm/c27-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-05/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C27-06/x_pos + key: srdiag/bpm/c27-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-06/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C27-06/y_pos + key: srdiag/bpm/c27-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-06/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C27-07/x_pos + key: srdiag/bpm/c27-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-07/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C27-07/y_pos + key: srdiag/bpm/c27-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-07/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C27-08/x_pos + key: srdiag/bpm/c27-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-08/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C27-08/y_pos + key: srdiag/bpm/c27-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-08/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C27-09/x_pos + key: srdiag/bpm/c27-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-09/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C27-09/y_pos + key: srdiag/bpm/c27-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-09/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C27-10/x_pos + key: srdiag/bpm/c27-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-10/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C27-10/y_pos + key: srdiag/bpm/c27-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-10/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C28-01/x_pos + key: srdiag/bpm/c28-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-01/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C28-01/y_pos + key: srdiag/bpm/c28-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-01/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C28-02/x_pos + key: srdiag/bpm/c28-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-02/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C28-02/y_pos + key: srdiag/bpm/c28-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-02/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C28-03/x_pos + key: srdiag/bpm/c28-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-03/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C28-03/y_pos + key: srdiag/bpm/c28-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-03/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C28-04/x_pos + key: srdiag/bpm/c28-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-04/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C28-04/y_pos + key: srdiag/bpm/c28-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-04/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C28-05/x_pos + key: srdiag/bpm/c28-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-05/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C28-05/y_pos + key: srdiag/bpm/c28-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-05/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C28-06/x_pos + key: srdiag/bpm/c28-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-06/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C28-06/y_pos + key: srdiag/bpm/c28-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-06/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C28-07/x_pos + key: srdiag/bpm/c28-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-07/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C28-07/y_pos + key: srdiag/bpm/c28-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-07/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C28-08/x_pos + key: srdiag/bpm/c28-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-08/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C28-08/y_pos + key: srdiag/bpm/c28-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-08/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C28-09/x_pos + key: srdiag/bpm/c28-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-09/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C28-09/y_pos + key: srdiag/bpm/c28-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-09/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C28-10/x_pos + key: srdiag/bpm/c28-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-10/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C28-10/y_pos + key: srdiag/bpm/c28-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-10/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C29-01/x_pos + key: srdiag/bpm/c29-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-01/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C29-01/y_pos + key: srdiag/bpm/c29-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-01/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C29-02/x_pos + key: srdiag/bpm/c29-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-02/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C29-02/y_pos + key: srdiag/bpm/c29-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-02/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C29-03/x_pos + key: srdiag/bpm/c29-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-03/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C29-03/y_pos + key: srdiag/bpm/c29-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-03/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C29-04/x_pos + key: srdiag/bpm/c29-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-04/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C29-04/y_pos + key: srdiag/bpm/c29-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-04/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C29-05/x_pos + key: srdiag/bpm/c29-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-05/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C29-05/y_pos + key: srdiag/bpm/c29-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-05/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C29-06/x_pos + key: srdiag/bpm/c29-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-06/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C29-06/y_pos + key: srdiag/bpm/c29-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-06/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C29-07/x_pos + key: srdiag/bpm/c29-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-07/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C29-07/y_pos + key: srdiag/bpm/c29-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-07/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C29-08/x_pos + key: srdiag/bpm/c29-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-08/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C29-08/y_pos + key: srdiag/bpm/c29-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-08/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C29-09/x_pos + key: srdiag/bpm/c29-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-09/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C29-09/y_pos + key: srdiag/bpm/c29-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-09/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C29-10/x_pos + key: srdiag/bpm/c29-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-10/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C29-10/y_pos + key: srdiag/bpm/c29-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-10/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C30-01/x_pos + key: srdiag/bpm/c30-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-01/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C30-01/y_pos + key: srdiag/bpm/c30-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-01/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C30-02/x_pos + key: srdiag/bpm/c30-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-02/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C30-02/y_pos + key: srdiag/bpm/c30-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-02/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C30-03/x_pos + key: srdiag/bpm/c30-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-03/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C30-03/y_pos + key: srdiag/bpm/c30-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-03/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C30-04/x_pos + key: srdiag/bpm/c30-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-04/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C30-04/y_pos + key: srdiag/bpm/c30-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-04/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C30-05/x_pos + key: srdiag/bpm/c30-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-05/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C30-05/y_pos + key: srdiag/bpm/c30-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-05/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C30-06/x_pos + key: srdiag/bpm/c30-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-06/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C30-06/y_pos + key: srdiag/bpm/c30-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-06/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C30-07/x_pos + key: srdiag/bpm/c30-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-07/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C30-07/y_pos + key: srdiag/bpm/c30-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-07/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C30-08/x_pos + key: srdiag/bpm/c30-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-08/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C30-08/y_pos + key: srdiag/bpm/c30-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-08/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C30-09/x_pos + key: srdiag/bpm/c30-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-09/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C30-09/y_pos + key: srdiag/bpm/c30-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-09/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C30-10/x_pos + key: srdiag/bpm/c30-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-10/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C30-10/y_pos + key: srdiag/bpm/c30-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-10/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C31-01/x_pos + key: srdiag/bpm/c31-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-01/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C31-01/y_pos + key: srdiag/bpm/c31-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-01/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C31-02/x_pos + key: srdiag/bpm/c31-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-02/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C31-02/y_pos + key: srdiag/bpm/c31-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-02/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C31-03/x_pos + key: srdiag/bpm/c31-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-03/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C31-03/y_pos + key: srdiag/bpm/c31-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-03/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C31-04/x_pos + key: srdiag/bpm/c31-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-04/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C31-04/y_pos + key: srdiag/bpm/c31-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-04/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C31-05/x_pos + key: srdiag/bpm/c31-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-05/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C31-05/y_pos + key: srdiag/bpm/c31-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-05/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C31-06/x_pos + key: srdiag/bpm/c31-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-06/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C31-06/y_pos + key: srdiag/bpm/c31-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-06/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C31-07/x_pos + key: srdiag/bpm/c31-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-07/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C31-07/y_pos + key: srdiag/bpm/c31-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-07/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C31-08/x_pos + key: srdiag/bpm/c31-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-08/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C31-08/y_pos + key: srdiag/bpm/c31-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-08/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C31-09/x_pos + key: srdiag/bpm/c31-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-09/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C31-09/y_pos + key: srdiag/bpm/c31-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-09/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C31-10/x_pos + key: srdiag/bpm/c31-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-10/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C31-10/y_pos + key: srdiag/bpm/c31-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-10/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C32-01/x_pos + key: srdiag/bpm/c32-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-01/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C32-01/y_pos + key: srdiag/bpm/c32-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-01/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C32-02/x_pos + key: srdiag/bpm/c32-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-02/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C32-02/y_pos + key: srdiag/bpm/c32-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-02/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C32-03/x_pos + key: srdiag/bpm/c32-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-03/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C32-03/y_pos + key: srdiag/bpm/c32-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-03/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C32-04/x_pos + key: srdiag/bpm/c32-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-04/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C32-04/y_pos + key: srdiag/bpm/c32-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-04/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C32-05/x_pos + key: srdiag/bpm/c32-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-05/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C32-05/y_pos + key: srdiag/bpm/c32-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-05/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C32-06/x_pos + key: srdiag/bpm/c32-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-06/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C32-06/y_pos + key: srdiag/bpm/c32-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-06/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C32-07/x_pos + key: srdiag/bpm/c32-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-07/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C32-07/y_pos + key: srdiag/bpm/c32-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-07/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C32-08/x_pos + key: srdiag/bpm/c32-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-08/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C32-08/y_pos + key: srdiag/bpm/c32-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-08/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C32-09/x_pos + key: srdiag/bpm/c32-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-09/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C32-09/y_pos + key: srdiag/bpm/c32-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-09/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C32-10/x_pos + key: srdiag/bpm/c32-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-10/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C32-10/y_pos + key: srdiag/bpm/c32-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-10/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-01/x_pos + key: srdiag/bpm/c01-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-01/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-01/y_pos + key: srdiag/bpm/c01-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-01/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-02/x_pos + key: srdiag/bpm/c01-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-02/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-02/y_pos + key: srdiag/bpm/c01-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-02/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-03/x_pos + key: srdiag/bpm/c01-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-03/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-03/y_pos + key: srdiag/bpm/c01-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-03/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-04/x_pos + key: srdiag/bpm/c01-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-04/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-04/y_pos + key: srdiag/bpm/c01-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-04/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-05/x_pos + key: srdiag/bpm/c01-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-05/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-05/y_pos + key: srdiag/bpm/c01-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-05/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-06/x_pos + key: srdiag/bpm/c01-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-06/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-06/y_pos + key: srdiag/bpm/c01-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-06/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-07/x_pos + key: srdiag/bpm/c01-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-07/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-07/y_pos + key: srdiag/bpm/c01-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-07/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-08/x_pos + key: srdiag/bpm/c01-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-08/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-08/y_pos + key: srdiag/bpm/c01-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-08/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-09/x_pos + key: srdiag/bpm/c01-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-09/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-09/y_pos + key: srdiag/bpm/c01-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-09/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-10/x_pos + key: srdiag/bpm/c01-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-10/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-10/y_pos + key: srdiag/bpm/c01-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-10/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C02-01/x_pos + key: srdiag/bpm/c02-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-01/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C02-01/y_pos + key: srdiag/bpm/c02-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-01/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C02-02/x_pos + key: srdiag/bpm/c02-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-02/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C02-02/y_pos + key: srdiag/bpm/c02-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-02/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C02-03/x_pos + key: srdiag/bpm/c02-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-03/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C02-03/y_pos + key: srdiag/bpm/c02-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-03/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C02-04/x_pos + key: srdiag/bpm/c02-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-04/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C02-04/y_pos + key: srdiag/bpm/c02-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-04/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C02-05/x_pos + key: srdiag/bpm/c02-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-05/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C02-05/y_pos + key: srdiag/bpm/c02-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-05/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C02-06/x_pos + key: srdiag/bpm/c02-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-06/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C02-06/y_pos + key: srdiag/bpm/c02-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-06/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C02-07/x_pos + key: srdiag/bpm/c02-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-07/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C02-07/y_pos + key: srdiag/bpm/c02-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-07/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C02-08/x_pos + key: srdiag/bpm/c02-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-08/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C02-08/y_pos + key: srdiag/bpm/c02-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-08/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C02-09/x_pos + key: srdiag/bpm/c02-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-09/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C02-09/y_pos + key: srdiag/bpm/c02-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-09/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C02-10/x_pos + key: srdiag/bpm/c02-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-10/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C02-10/y_pos + key: srdiag/bpm/c02-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-10/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C03-01/x_pos + key: srdiag/bpm/c03-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-01/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C03-01/y_pos + key: srdiag/bpm/c03-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-01/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C03-02/x_pos + key: srdiag/bpm/c03-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-02/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C03-02/y_pos + key: srdiag/bpm/c03-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-02/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C03-03/x_pos + key: srdiag/bpm/c03-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-03/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C03-03/y_pos + key: srdiag/bpm/c03-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-03/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C03-04/x_pos + key: srdiag/bpm/c03-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-04/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C03-04/y_pos + key: srdiag/bpm/c03-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-04/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C03-05/x_pos + key: srdiag/bpm/c03-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-05/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C03-05/y_pos + key: srdiag/bpm/c03-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-05/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C03-06/x_pos + key: srdiag/bpm/c03-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-06/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C03-06/y_pos + key: srdiag/bpm/c03-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-06/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C03-07/x_pos + key: srdiag/bpm/c03-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-07/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C03-07/y_pos + key: srdiag/bpm/c03-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-07/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C03-08/x_pos + key: srdiag/bpm/c03-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-08/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C03-08/y_pos + key: srdiag/bpm/c03-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-08/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C03-09/x_pos + key: srdiag/bpm/c03-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-09/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C03-09/y_pos + key: srdiag/bpm/c03-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-09/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C03-10/x_pos + key: srdiag/bpm/c03-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-10/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C03-10/y_pos + key: srdiag/bpm/c03-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-10/SA_VPosition diff --git a/tests/config/catalogs/shared_c04_bpm_catalogs.yaml b/tests/config/catalogs/shared_c04_bpm_catalogs.yaml index bfe88ae4..48c2f9ae 100644 --- a/tests/config/catalogs/shared_c04_bpm_catalogs.yaml +++ b/tests/config/catalogs/shared_c04_bpm_catalogs.yaml @@ -2,73 +2,61 @@ type: pyaml.configuration.static_catalog name: bpm-catalog entries: - type: pyaml.configuration.static_catalog_entry - key: BPM_C04-01/x + key: srdiag/bpm/c04-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-01/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C04-01/y + key: srdiag/bpm/c04-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-01/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C04-02/x + key: srdiag/bpm/c04-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-02/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C04-02/y + key: srdiag/bpm/c04-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-02/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C04-04/x + key: srdiag/bpm/c04-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-04/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C04-04/y + key: srdiag/bpm/c04-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-04/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C04-05/x + key: srdiag/bpm/c04-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-05/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C04-05/y + key: srdiag/bpm/c04-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-05/SA_VPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C04-06/x + key: srdiag/bpm/c04-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-06/SA_HPosition unit: m - type: pyaml.configuration.static_catalog_entry - key: BPM_C04-06/y - device: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-06/SA_VPosition - unit: m - - type: pyaml.configuration.static_catalog_entry - key: BPM_C04-06_2/x - device: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c04-06/SA_HPosition - unit: m - - type: pyaml.configuration.static_catalog_entry - key: BPM_C04-06_2/y + key: srdiag/bpm/c04-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-06/SA_VPosition diff --git a/tests/config/config_manager_sr_devices.yaml b/tests/config/config_manager_sr_devices.yaml index d6b76da1..d7d2e639 100644 --- a/tests/config/config_manager_sr_devices.yaml +++ b/tests/config/config_manager_sr_devices.yaml @@ -5,11 +5,11 @@ devices: name: BPM_C04-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C04-01/x - y_pos: BPM_C04-01/y + x_pos: srdiag/bpm/c04-01/SA_HPosition + y_pos: srdiag/bpm/c04-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C04-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C04-02/x - y_pos: BPM_C04-02/y + x_pos: srdiag/bpm/c04-02/SA_HPosition + y_pos: srdiag/bpm/c04-02/SA_VPosition diff --git a/tests/config/sr.yaml b/tests/config/sr.yaml index 440b9ba9..00e83dc9 100644 --- a/tests/config/sr.yaml +++ b/tests/config/sr.yaml @@ -49,11 +49,11 @@ devices: name: BPM_C04-01 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C04-01/x - y_pos: BPM_C04-01/y + x_pos: srdiag/bpm/c04-01/SA_HPosition + y_pos: srdiag/bpm/c04-01/SA_VPosition - type: pyaml.bpm.bpm name: BPM_C04-02 model: type: pyaml.bpm.bpm_simple_model - x_pos: BPM_C04-02/x - y_pos: BPM_C04-02/y + x_pos: srdiag/bpm/c04-02/SA_HPosition + y_pos: srdiag/bpm/c04-02/SA_VPosition diff --git a/tests/test_configuration_manager.py b/tests/test_configuration_manager.py index d917a002..84a06da3 100644 --- a/tests/test_configuration_manager.py +++ b/tests/test_configuration_manager.py @@ -201,7 +201,7 @@ def test_configuration_manager_tracks_catalogs_as_named_category(config_root_pat assert manager.keys("catalogs") == ["device-catalog"] assert manager.has("catalogs", "device-catalog") assert manager.get("catalogs", "device-catalog")["type"] == "pyaml.configuration.static_catalog" - assert manager.get("catalogs", "device-catalog")["entries"][0]["key"] == "BPM_C01-01/x" + assert manager.get("catalogs", "device-catalog")["entries"][0]["key"] == "srdiag/bpm/c01-01/SA_HPosition" assert manager.catalogs == ["device-catalog"] @@ -213,7 +213,7 @@ def test_configuration_manager_adds_catalog_fragment(config_root_path): assert manager.keys("catalogs") == ["bpm-catalog"] assert manager.has("catalogs", "bpm-catalog") assert manager.get("catalogs", "bpm-catalog")["type"] == "pyaml.configuration.static_catalog" - assert manager.get("catalogs", "bpm-catalog")["entries"][0]["key"] == "BPM_C04-01/x" + assert manager.get("catalogs", "bpm-catalog")["entries"][0]["key"] == "srdiag/bpm/c04-01/SA_HPosition" def test_accelerator_load_stays_compatible(config_manager_base_config): From b776a6df4becd44a554f4910eaa52aa01560d961 Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Wed, 22 Apr 2026 14:09:32 +0200 Subject: [PATCH 11/19] Adapting examples --- examples/BESSY2_example/BESSY2Orbit.yaml | 1241 ++----- examples/SOLEIL_examples/p.yaml | 4008 ++++++++++++++-------- 2 files changed, 2806 insertions(+), 2443 deletions(-) diff --git a/examples/BESSY2_example/BESSY2Orbit.yaml b/examples/BESSY2_example/BESSY2Orbit.yaml index c6e00aa3..865cb2a0 100644 --- a/examples/BESSY2_example/BESSY2Orbit.yaml +++ b/examples/BESSY2_example/BESSY2Orbit.yaml @@ -10,6 +10,17 @@ controls: - type: pyaml_cs_oa.controlsystem prefix: "a3744:" name: live + catalog: bpm-catalog +catalogs: + - type: pyaml.configuration.static_catalog + name: bpm-catalog + entries: + - type: pyaml.configuration.static_catalog_entry + key: ORBITCC:rdPos + device: + type: pyaml_cs_oa.epicsR + read_pvname: ORBITCC:rdPos + unit: nm data_folder: /data/store arrays: - type: pyaml.arrays.magnet @@ -1631,1719 +1642,981 @@ devices: type: pyaml.bpm.bpm_simple_model x_pos_index: 0 y_pos_index: 1 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ6D1R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 2 y_pos_index: 3 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ7D1R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 4 y_pos_index: 5 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ1T1R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 6 y_pos_index: 7 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ2T1R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 8 y_pos_index: 9 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ3T1R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 10 y_pos_index: 11 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ4T1R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 12 y_pos_index: 13 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ41T1R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 14 y_pos_index: 15 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ5T1R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 16 y_pos_index: 17 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ6T1R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 18 y_pos_index: 19 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ7T1R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 20 y_pos_index: 21 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ1D2R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 22 y_pos_index: 23 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ2D2R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 24 y_pos_index: 25 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ3D2R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 26 y_pos_index: 27 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ4D2R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 28 y_pos_index: 29 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ5D2R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 30 y_pos_index: 31 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ6D2R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 32 y_pos_index: 33 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ7D2R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 34 y_pos_index: 35 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ1T2R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 36 y_pos_index: 37 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ2T2R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 38 y_pos_index: 39 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ3T2R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 40 y_pos_index: 41 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ4T2R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 42 y_pos_index: 43 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ41T2R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 44 y_pos_index: 45 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ42T2R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 46 y_pos_index: 47 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ43T2R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 48 y_pos_index: 49 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ5T2R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 50 y_pos_index: 51 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ6T2R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 52 y_pos_index: 53 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ7T2R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 54 y_pos_index: 55 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ1D3R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 56 y_pos_index: 57 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ2D3R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 58 y_pos_index: 59 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ3D3R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 60 y_pos_index: 61 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ4D3R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 62 y_pos_index: 63 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ5D3R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 64 y_pos_index: 65 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ6D3R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 66 y_pos_index: 67 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ7D3R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 68 y_pos_index: 69 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ1T3R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 70 y_pos_index: 71 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ2T3R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 72 y_pos_index: 73 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ3T3R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 74 y_pos_index: 75 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ4T3R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 76 y_pos_index: 77 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ5T3R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 78 y_pos_index: 79 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ6T3R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 80 y_pos_index: 81 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ7T3R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 82 y_pos_index: 83 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ1D4R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 84 y_pos_index: 85 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ2D4R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 86 y_pos_index: 87 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ3D4R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 88 y_pos_index: 89 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ4D4R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 90 y_pos_index: 91 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ5D4R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 92 y_pos_index: 93 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ6D4R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 94 y_pos_index: 95 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ7D4R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 96 y_pos_index: 97 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ1T4R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 98 y_pos_index: 99 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ2T4R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 100 y_pos_index: 101 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ3T4R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 102 y_pos_index: 103 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ4T4R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 104 y_pos_index: 105 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ5T4R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 106 y_pos_index: 107 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ6T4R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 108 y_pos_index: 109 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ7T4R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 110 y_pos_index: 111 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ1D5R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 112 y_pos_index: 113 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ2D5R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 114 y_pos_index: 115 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ3D5R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 116 y_pos_index: 117 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ4D5R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 118 y_pos_index: 119 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ5D5R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 120 y_pos_index: 121 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ6D5R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 122 y_pos_index: 123 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ7D5R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 124 y_pos_index: 125 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ1T5R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 126 y_pos_index: 127 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ2T5R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 128 y_pos_index: 129 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ3T5R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 130 y_pos_index: 131 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ4T5R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 132 y_pos_index: 133 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ5T5R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 134 y_pos_index: 135 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ6T5R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 136 y_pos_index: 137 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ7T5R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 138 y_pos_index: 139 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ1D6R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 140 y_pos_index: 141 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ2D6R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 142 y_pos_index: 143 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ3D6R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 144 y_pos_index: 145 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ4D6R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 146 y_pos_index: 147 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ41D6R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 148 y_pos_index: 149 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ42D6R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 150 y_pos_index: 151 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ43D6R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 152 y_pos_index: 153 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ44D6R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 154 y_pos_index: 155 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ6D6R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 156 y_pos_index: 157 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ7D6R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 158 y_pos_index: 159 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ1T6R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 160 y_pos_index: 161 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ2T6R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 162 y_pos_index: 163 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ3T6R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 164 y_pos_index: 165 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ4T6R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 166 y_pos_index: 167 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ41T6R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 168 y_pos_index: 169 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ5T6R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 170 y_pos_index: 171 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ6T6R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 172 y_pos_index: 173 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ7T6R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 174 y_pos_index: 175 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ1D7R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 176 y_pos_index: 177 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ2D7R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 178 y_pos_index: 179 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ3D7R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 180 y_pos_index: 181 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ4D7R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 182 y_pos_index: 183 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ5D7R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 184 y_pos_index: 185 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ6D7R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 186 y_pos_index: 187 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ7D7R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 188 y_pos_index: 189 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ1T7R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 190 y_pos_index: 191 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ2T7R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 192 y_pos_index: 193 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ3T7R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 194 y_pos_index: 195 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ4T7R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 196 y_pos_index: 197 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ41T7R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 198 y_pos_index: 199 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ5T7R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 200 y_pos_index: 201 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ6T7R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 202 y_pos_index: 203 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ7T7R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 204 y_pos_index: 205 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ1D8R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 206 y_pos_index: 207 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ2D8R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 208 y_pos_index: 209 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ3D8R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 210 y_pos_index: 211 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ4D8R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 212 y_pos_index: 213 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ5D8R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 214 y_pos_index: 215 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ6D8R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 216 y_pos_index: 217 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ7D8R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 218 y_pos_index: 219 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ1T8R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 220 y_pos_index: 221 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ2T8R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 222 y_pos_index: 223 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ3T8R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 224 y_pos_index: 225 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ4T8R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 226 y_pos_index: 227 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ5T8R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 228 y_pos_index: 229 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ6T8R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 230 y_pos_index: 231 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ7T8R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 232 y_pos_index: 233 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ1D1R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 234 y_pos_index: 235 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ2D1R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 236 y_pos_index: 237 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ3D1R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 238 y_pos_index: 239 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ4D1R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 240 y_pos_index: 241 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ41D1R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 242 y_pos_index: 243 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos - type: pyaml.bpm.bpm name: BPMZ42D1R model: type: pyaml.bpm.bpm_simple_model x_pos_index: 244 y_pos_index: 245 - x_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm - y_pos: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + x_pos: ORBITCC:rdPos + y_pos: ORBITCC:rdPos diff --git a/examples/SOLEIL_examples/p.yaml b/examples/SOLEIL_examples/p.yaml index 5ec7993d..622ffb50 100644 --- a/examples/SOLEIL_examples/p.yaml +++ b/examples/SOLEIL_examples/p.yaml @@ -14,6 +14,2171 @@ controls: - type: tango.pyaml.controlsystem name: live tango_host: localhost:11000 + catalog: bpm-catalog +catalogs: +- type: pyaml.configuration.static_catalog + name: bpm-catalog + entries: + - type: pyaml.configuration.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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.static_catalog_entry + key: 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 arrays: - type: pyaml.arrays.bpm name: BPM @@ -4480,14 +6645,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 +6723,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 +6799,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 +6884,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 +6969,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 +7054,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 +7139,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 +7240,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 +7300,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 +7346,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 +7398,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 +7503,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 +7588,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 +7689,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 +7742,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 +7788,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 +7840,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 +7938,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 +8023,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 +8108,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 +8193,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 +8278,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 +8379,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 +8432,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 +8478,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 +8530,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 +8628,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 +8713,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 +8814,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 +8874,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 +8920,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 +8972,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 +9077,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 +9162,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 +9247,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 +9332,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 +9417,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 +9518,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 +9549,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 +9627,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 +9711,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 +9795,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 +9871,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 +9956,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 +10041,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 +10126,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 +10211,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: @@ -8461,18 +10308,12 @@ devices: - type: tango.pyaml.attribute attribute: AN06-AR/EM-COR/SCD.18-CDLV.10/strength unit: '1' -- type: pyaml.bpm.bpm - 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 +- type: pyaml.bpm.bpm + name: BPM_054 + model: + type: pyaml.bpm.bpm_simple_model + 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 +10372,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 +10418,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 +10470,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 +10575,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 +10660,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 +10761,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 +10814,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 +10860,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 +10912,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 +11010,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 +11095,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 +11180,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 +11265,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 +11350,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 +11451,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 +11504,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 +11550,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 +11602,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 +11700,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 +11785,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 +11886,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 +11946,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 +11992,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 +12044,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 +12149,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 +12234,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 +12319,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 +12404,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 +12489,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 +12590,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 +12621,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 +12699,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 +12783,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 +12859,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 +12944,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 +13029,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 +13114,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 +13199,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 +13300,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 +13360,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 +13406,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 +13458,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 +13563,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 +13648,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 +13749,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 +13802,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 +13848,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 +13900,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 +13998,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 +14083,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 +14168,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 +14253,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 +14338,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 +14439,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 +14492,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 +14538,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 +14590,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 +14688,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 +14773,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 +14874,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 +14934,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 +14980,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 +15032,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 +15137,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 +15222,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 +15307,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 +15392,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 +15477,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 +15578,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 +15609,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 +15683,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 +15767,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: @@ -14500,18 +15843,12 @@ devices: - type: tango.pyaml.attribute attribute: AN16-AR/EM-COR/SHD.02-CDLH.04/strength unit: '1' -- type: pyaml.bpm.bpm - 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 +- type: pyaml.bpm.bpm + name: BPM_138 + model: + type: pyaml.bpm.bpm_simple_model + 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 +15923,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 +16008,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 +16093,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 +16178,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 +16263,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 +16364,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 +16424,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 +16470,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 +16522,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 +16627,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 +16712,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 +16813,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 +16866,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 +16912,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 +16964,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 +17062,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 +17147,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 +17232,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 +17317,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 +17402,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 +17503,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 +17556,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 +17602,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 +17654,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 +17752,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 +17837,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 +17938,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 +17998,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 +18044,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 +18096,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 +18201,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 +18286,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 +18371,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 +18456,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 +18541,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 +18642,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 +18673,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,14 +18751,8 @@ 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: @@ -17694,17 +18779,22 @@ devices: 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 + quad_array_name: QCORR + betatron_tune_name: BETATRON_TUNE + response_matrix: file:tune_response.json +- type: pyaml.tuning_tools.tune_response_matrix + name: DEFAULT_TUNE_RESPONSE_MATRIX + quad_array_name: QCORR + betatron_tune_name: BETATRON_TUNE + quad_delta: 1e-3 - type: pyaml.diagnostics.chromaticity_monitor name: DEFAULT_CHROMATICITY_MEASUREMENT - betatron_tune: BETATRON_TUNE - RFfreq: RF + betatron_tune_name: BETATRON_TUNE + rf_plant_name: 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 + n_avg_meas: 3 + n_step: 15 + sleep_between_meas: 2 + sleep_between_step: 2 + e_delta: 1e-3 + max_e_delta: 1e-2 From 8b88938a6132401d5b7bf50c3f4a5b8c9c10cee7 Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Fri, 24 Apr 2026 11:01:41 +0200 Subject: [PATCH 12/19] Leftover from a bug fix for serialized magnets that need to be moved to another branch --- pyaml/magnet/linear_serialized_model.py | 2 +- pyaml/magnet/serialized_magnet.py | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/pyaml/magnet/linear_serialized_model.py b/pyaml/magnet/linear_serialized_model.py index 522e8c64..77eef97b 100644 --- a/pyaml/magnet/linear_serialized_model.py +++ b/pyaml/magnet/linear_serialized_model.py @@ -163,7 +163,7 @@ def get_hardware_units(self) -> list[str]: return [p.unit() for p in self._cfg.__sub_models] def get_devices(self) -> list[DeviceAccess]: - return [self._cfg.powerconverter] * self.__nbMagnets + return self._cfg.powerconverters def set_magnet_rigidity(self, brho: np.double): self.__brho = brho diff --git a/pyaml/magnet/serialized_magnet.py b/pyaml/magnet/serialized_magnet.py index 35a457e5..10613c04 100644 --- a/pyaml/magnet/serialized_magnet.py +++ b/pyaml/magnet/serialized_magnet.py @@ -170,5 +170,8 @@ def set_energy(self, energy: float): def __repr__(self): return __pyaml_repr__(self) - def get_devices(self) -> list[DeviceAccess | None]: - return self.model.get_devices() + def get_devices(self) -> list[DeviceAccess]: + if isinstance(self.model.powerconverter, list): + return self.model.powerconverter + else: + return [self._cfg.powerconverter] From 9c2f71e079ac7604726a10101aa2612b138691bc Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Fri, 24 Apr 2026 16:04:25 +0200 Subject: [PATCH 13/19] Move catalog indexing responsibility from pyaml BPM models to the CS backend. Remove StaticCatalog from pyaml core, add AttributeIndexed to the dummy CS, and strip all *_pos_index / attach_indexed / CSBPMArrayMapper logic from pyaml. --- examples/BESSY2_example/BESSY2Orbit.yaml | 4 +- examples/SOLEIL_examples/p.yaml | 722 +++++----- pyaml/apidoc/gen_api.py | 2 - pyaml/bpm/bpm_model.py | 98 -- pyaml/bpm/bpm_simple_model.py | 34 - pyaml/bpm/bpm_tiltoffset_model.py | 2 - pyaml/configuration/__init__.py | 4 - pyaml/configuration/catalog.py | 4 +- pyaml/configuration/static_catalog.py | 93 -- pyaml/configuration/static_catalog_entry.py | 60 - pyaml/control/abstract_impl.py | 98 +- pyaml/control/controlsystem.py | 97 +- tests/config/bad_catalog_duplicate_key.yaml | 6 +- tests/config/bpms.yaml | 6 +- tests/config/catalog_named.yaml | 12 +- tests/config/catalogs/bpms_catalogs.yaml | 34 +- .../catalogs/ebs_orbit_bpm_catalogs.yaml | 1282 ++++++++--------- .../catalogs/shared_c04_bpm_catalogs.yaml | 22 +- .../tango/pyaml/attribute_indexed.py | 68 + .../tango-pyaml/tango/pyaml/controlsystem.py | 11 +- .../tango-pyaml/tango/pyaml/static_catalog.py | 34 + .../tango/pyaml/static_catalog_entry.py | 23 + tests/test_catalogs.py | 100 +- tests/test_configuration_manager.py | 6 +- 24 files changed, 1299 insertions(+), 1523 deletions(-) delete mode 100644 pyaml/configuration/static_catalog.py delete mode 100644 pyaml/configuration/static_catalog_entry.py create mode 100644 tests/dummy_cs/tango-pyaml/tango/pyaml/attribute_indexed.py create mode 100644 tests/dummy_cs/tango-pyaml/tango/pyaml/static_catalog.py create mode 100644 tests/dummy_cs/tango-pyaml/tango/pyaml/static_catalog_entry.py diff --git a/examples/BESSY2_example/BESSY2Orbit.yaml b/examples/BESSY2_example/BESSY2Orbit.yaml index 0a2f2920..bd6d5174 100644 --- a/examples/BESSY2_example/BESSY2Orbit.yaml +++ b/examples/BESSY2_example/BESSY2Orbit.yaml @@ -12,10 +12,10 @@ controls: name: live catalog: bpm-catalog catalogs: - - type: pyaml.configuration.static_catalog + - type: pyaml_cs_oa.static_catalog name: bpm-catalog entries: - - type: pyaml.configuration.static_catalog_entry + - type: pyaml_cs_oa.static_catalog_entry key: ORBITCC:rdPos device: type: pyaml_cs_oa.epicsR diff --git a/examples/SOLEIL_examples/p.yaml b/examples/SOLEIL_examples/p.yaml index 622ffb50..ad9fc2a3 100644 --- a/examples/SOLEIL_examples/p.yaml +++ b/examples/SOLEIL_examples/p.yaml @@ -16,2164 +16,2164 @@ controls: tango_host: localhost:11000 catalog: bpm-catalog catalogs: -- type: pyaml.configuration.static_catalog +- type: tango.pyaml.static_catalog name: bpm-catalog entries: - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: 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.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: AN01-SD/DG-EPOS/BPM.01/y_pos device: type: tango.pyaml.attribute_read_only diff --git a/pyaml/apidoc/gen_api.py b/pyaml/apidoc/gen_api.py index 0479eb51..e046cc1f 100644 --- a/pyaml/apidoc/gen_api.py +++ b/pyaml/apidoc/gen_api.py @@ -41,8 +41,6 @@ "pyaml.configuration.inline_matrix", "pyaml.configuration.manager", "pyaml.configuration.matrix", - "pyaml.configuration.static_catalog", - "pyaml.configuration.static_catalog_entry", "pyaml.control.abstract_impl", "pyaml.control.controlsystem", "pyaml.control.deviceaccess", diff --git a/pyaml/bpm/bpm_model.py b/pyaml/bpm/bpm_model.py index c596c85a..dc47b7da 100644 --- a/pyaml/bpm/bpm_model.py +++ b/pyaml/bpm/bpm_model.py @@ -42,101 +42,3 @@ def get_offset_devices(self) -> list[str | None]: h and v offset devices """ pass - - def x_pos_index(self) -> int | None: - """ - Returns the index of the horizontal position in - an array, otherwise a scalar value is expected from the - corresponding DeviceAccess - - Returns - ------- - int - Index in the array, None for a scalar value - """ - return None - - def y_pos_index(self) -> int | None: - """ - Returns the index of the veritcal position in - an array, otherwise a scalar value is expected from the - corresponding DeviceAccess - - Returns - ------- - int - Index in the array, None for a scalar value - """ - return None - - def is_pos_indexed(self) -> bool: - """ - Check if position values are indexed (array-based). - - Returns - ------- - bool - True if both x and y positions are indexed, False otherwise - """ - return self.x_pos_index() is not None and self.y_pos_index() is not None - - def tilt_index(self) -> int | None: - """ - Returns the index of the tilt angle in - an array, otherwise a scalar value is expected from the - corresponding DeviceAccess - - Returns - ------- - int - Index in the array, None for a scalar value - """ - return None - - def is_tilt_indexed(self) -> bool: - """ - Check if tilt value is indexed (array-based). - - Returns - ------- - bool - True if tilt is indexed, False otherwise - """ - return self.tilt_index() is not None - - def x_offset_index(self) -> int | None: - """ - Returns the index of the horizontal offset in - an array, otherwise a scalar value is expected from the - corresponding DeviceAccess - - Returns - ------- - int - Index in the array, None for a scalar value - """ - return None - - def y_offset_index(self) -> int | None: - """ - Returns the index of the veritcal offset in - an array, otherwise a scalar value is expected from the - corresponding DeviceAccess - - Returns - ------- - int - Index in the array, None for a scalar value - """ - return None - - def is_offset_indexed(self) -> bool: - """ - Check if offset values are indexed (array-based). - - Returns - ------- - bool - True if both x and y offsets are indexed, False otherwise - """ - return self.x_offset_index() is not None and self.y_offset_index() is not None diff --git a/pyaml/bpm/bpm_simple_model.py b/pyaml/bpm/bpm_simple_model.py index a6d3a674..d80a7074 100644 --- a/pyaml/bpm/bpm_simple_model.py +++ b/pyaml/bpm/bpm_simple_model.py @@ -18,20 +18,12 @@ class ConfigModel(BaseModel): Horizontal position catalog key y_pos : str Vertical position catalog key - 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: str y_pos: str - x_pos_index: int | None = None - y_pos_index: int | None = None class BPMSimpleModel(BPMModel): @@ -78,31 +70,5 @@ def get_offset_devices(self) -> list[str | None]: """ return [None, None] - def x_pos_index(self) -> int | None: - """ - Returns the index of the horizontal position in - an array, otherwise a scalar value is expected from the - corresponding DeviceAccess - - Returns - ------- - int - Index in the array, None for a scalar value - """ - return self._cfg.x_pos_index - - def y_pos_index(self) -> int | None: - """ - Returns the index of the veritcal position in - an array, otherwise a scalar value is expected from the - corresponding DeviceAccess - - Returns - ------- - int - Index in the array, None for a scalar value - """ - return self._cfg.y_pos_index - def __repr__(self): return __pyaml_repr__(self) diff --git a/pyaml/bpm/bpm_tiltoffset_model.py b/pyaml/bpm/bpm_tiltoffset_model.py index e83d94f5..42a19391 100644 --- a/pyaml/bpm/bpm_tiltoffset_model.py +++ b/pyaml/bpm/bpm_tiltoffset_model.py @@ -32,8 +32,6 @@ class ConfigModel(BaseModel): x_pos: str y_pos: str - x_pos_index: int | None = None - y_pos_index: int | None = None x_offset: str y_offset: str tilt: str diff --git a/pyaml/configuration/__init__.py b/pyaml/configuration/__init__.py index 44434487..bc720dc6 100644 --- a/pyaml/configuration/__init__.py +++ b/pyaml/configuration/__init__.py @@ -6,8 +6,6 @@ from .factory import Factory from .fileloader import get_root_folder, set_root_folder from .manager import ConfigurationManager, UnsupportedConfigurationRootError -from .static_catalog import StaticCatalog -from .static_catalog_entry import StaticCatalogEntry __all__ = [ "ConfigurationManager", @@ -15,8 +13,6 @@ "Catalog", "CatalogConfigModel", "CatalogResolver", - "StaticCatalog", - "StaticCatalogEntry", "Factory", "get_root_folder", "set_root_folder", diff --git a/pyaml/configuration/catalog.py b/pyaml/configuration/catalog.py index c46fa7b7..6673dbcb 100644 --- a/pyaml/configuration/catalog.py +++ b/pyaml/configuration/catalog.py @@ -73,8 +73,8 @@ class Catalog(CatalogResolver, metaclass=ABCMeta): Notes ----- - Base PyAML provides :class:`~pyaml.configuration.static_catalog.StaticCatalog` - as the standard mapping-based implementation. External projects may + Concrete implementations live in each control-system package + (e.g. ``tango.pyaml.static_catalog``). External projects may derive from :class:`Catalog` to implement different resolution strategies while preserving the same public API. """ diff --git a/pyaml/configuration/static_catalog.py b/pyaml/configuration/static_catalog.py deleted file mode 100644 index dc3ed257..00000000 --- a/pyaml/configuration/static_catalog.py +++ /dev/null @@ -1,93 +0,0 @@ -""" -static_catalog.py - -Built-in mapping-based catalog implementation for PyAML. -""" - -from pydantic import ConfigDict - -from pyaml import PyAMLException -from pyaml.configuration.catalog import Catalog, CatalogConfigModel -from pyaml.configuration.static_catalog_entry import StaticCatalogEntry -from pyaml.control.deviceaccess import DeviceAccess - -PYAMLCLASS = "StaticCatalog" - - -class ConfigModel(CatalogConfigModel): - r""" - Configuration model for :class:`StaticCatalog`. - - Parameters - ---------- - name : str - Catalog identifier. - entries : list[StaticCatalogEntry] - Explicit list of typed entries mapping catalog keys to device access objects. - """ - - model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") - - entries: list[StaticCatalogEntry] - - -class StaticCatalog(Catalog): - r""" - Catalog implementation backed by explicit typed entries. - - :class:`StaticCatalog` is the standard catalog implementation - provided by base PyAML. It resolves configuration keys directly - from the mapping declared in the configuration file. - - Examples - -------- - - .. code-block:: yaml - - catalogs: - - type: pyaml.configuration.static_catalog - name: bpm-common - entries: - - type: pyaml.configuration.static_catalog_entry - key: BPM_C01-01/x - device: - type: tango.pyaml.attribute_read_only - attribute: srdiag/bpm/c01-01/XPosSA - unit: mm - """ - - def __init__(self, cfg: ConfigModel): - super().__init__(cfg) - if len(cfg.entries) == 0: - raise PyAMLException("StaticCatalog.entries must contain at least one entry") - - self._refs: dict[str, DeviceAccess] = {} - for entry in cfg.entries: - key = entry.get_key() - if key in self._refs: - raise PyAMLException(f"StaticCatalog.entries contains duplicate key '{key}'") - self._refs[key] = entry.get_device() - - def resolve(self, key: str) -> DeviceAccess: - r""" - Resolve a key from the static mapping. - - Parameters - ---------- - key : str - Catalog key to resolve. - - Returns - ------- - DeviceAccess - Device access stored for ``key``. - - Raises - ------ - PyAMLException - If the key is not present in the catalog. - """ - try: - return self._refs[key] - except KeyError as exc: - raise PyAMLException(f"Catalog '{self.get_name()}' cannot resolve key '{key}'") from exc diff --git a/pyaml/configuration/static_catalog_entry.py b/pyaml/configuration/static_catalog_entry.py deleted file mode 100644 index 32fbef39..00000000 --- a/pyaml/configuration/static_catalog_entry.py +++ /dev/null @@ -1,60 +0,0 @@ -""" -static_catalog_entry.py - -Typed catalog entry used by :mod:`pyaml.configuration.static_catalog`. -""" - -from pydantic import BaseModel, ConfigDict - -from pyaml.control.deviceaccess import DeviceAccess - -PYAMLCLASS = "StaticCatalogEntry" - - -class ConfigModel(BaseModel): - r""" - Configuration model for :class:`StaticCatalogEntry`. - - Parameters - ---------- - key : str - Catalog key resolved by the static catalog. - device : DeviceAccess - Device access associated with ``key``. - """ - - model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") - - key: str - device: DeviceAccess - - -class StaticCatalogEntry: - r""" - Typed entry for :class:`~pyaml.configuration.static_catalog.StaticCatalog`. - """ - - def __init__(self, cfg: ConfigModel): - self._cfg = cfg - - def get_key(self) -> str: - r""" - Return the catalog key. - - Returns - ------- - str - Entry key. - """ - return self._cfg.key - - def get_device(self) -> DeviceAccess: - r""" - Return the device associated with this entry. - - Returns - ------- - DeviceAccess - Stored device access. - """ - return self._cfg.device diff --git a/pyaml/control/abstract_impl.py b/pyaml/control/abstract_impl.py index 317b78c3..30afc024 100644 --- a/pyaml/control/abstract_impl.py +++ b/pyaml/control/abstract_impl.py @@ -5,7 +5,6 @@ from numpy.typing import NDArray from .. import PyAMLException -from ..bpm.bpm_model import BPMModel from ..common import abstract from ..common.abstract_aggregator import ScalarAggregator from ..control.deviceaccess import DeviceAccess @@ -284,39 +283,6 @@ def unit(self) -> str: # ------------------------------------------------------------------------------ -class CSBPMArrayMapper(CSScalarAggregator): - """ - Wrapper to a native CS aggregator for BPM - """ - - def __init__(self, devs: list[DeviceAccess], indices: list[list[int]]): - self._indices = indices - self._devs = devs - - def set(self, value: NDArray[np.float64]): - raise Exception("BPM are not writable") - - def get(self) -> NDArray[np.float64]: - if len(self._devs) == 1: - v = self._devs[0].get() - return v[self._indices[0]] - else: - # TODO read using DeviceAccessList - v0 = self._devs[0].get()[self._indices[0]] - v1 = self._devs[1].get()[self._indices[1]] - # Interleave - xy = np.zeros(v0.size + v1.size) - xy[0::2] = v0 - xy[1::2] = v1 - return xy - - def readback(self) -> np.array: - return self.get() - - def unit(self) -> str: - return self._dev.unit() - - # ------------------------------------------------------------------------------ @@ -466,27 +432,12 @@ class RBpmArray(abstract.ReadFloatArray): Class providing read access to a BPM position [x,y] of a control system """ - def __init__(self, model: BPMModel, hDev: DeviceAccess, vDev: DeviceAccess): - self._model = model + def __init__(self, hDev: DeviceAccess, vDev: DeviceAccess): self._hDev = hDev self._vDev = vDev - self._hIdx = self._model.x_pos_index() - self._vIdx = self._model.y_pos_index() - # Gets the values def get(self) -> np.array: - if self._hDev != self._vDev: - allhVal = self._hDev.get() - allvVal = self._vDev.get() - hVal = allhVal if self._hIdx is None else allhVal[self._hIdx] - vVal = allvVal if self._vIdx is None else allvVal[self._vIdx] - else: - # When h and v devices are identical, indexed - # values are expected - allVal = self._hDev.get() - hVal = allVal[self._hIdx] - vVal = allVal[self._vIdx] - return np.array([hVal, vVal]) + return np.array([self._hDev.get(), self._vDev.get()]) # Gets the unit of the value Assume that x and y, offsets and positions # have the same unit @@ -502,18 +453,11 @@ class RWBpmTiltScalar(abstract.ReadFloatScalar): Class providing read access to a BPM tilt of a control system """ - def __init__(self, model: BPMModel, dev: DeviceAccess): - self._model = model + def __init__(self, dev: DeviceAccess): self._dev = dev - self._idx = model.tilt_index() - # Gets the value def get(self) -> float: - allTilt = self._dev.get() - if self._idx is not None: - return allTilt[self._idx] - else: - return allTilt + return self._dev.get() def set(self, value: float): self._dev.set(value) @@ -534,40 +478,16 @@ class RWBpmOffsetArray(abstract.ReadWriteFloatArray): Class providing read write access to a BPM offset [x,y] of a control system """ - def __init__(self, model: BPMModel, hDev: DeviceAccess, vDev: DeviceAccess): - self._model = model + def __init__(self, hDev: DeviceAccess, vDev: DeviceAccess): self._hDev = hDev self._vDev = vDev - self._hIdx = self._model.x_pos_index() - self._vIdx = self._model.y_pos_index() - # Gets the values def get(self) -> np.array: - if self._hDev != self._vDev: - allhVal = self._hDev.get() - allvVal = self._vDev.get() - hVal = allhVal if self._hIdx is None else allhVal[self._hIdx] - vVal = allvVal if self._vIdx is None else allvVal[self._vIdx] - else: - # When h and v devices are identical, indexed - # values are expected - allVal = self._hDev.get() - hVal = allVal[self._hIdx] - vVal = allVal[self._vIdx] - return np.array([hVal, vVal]) - - # Sets the values + return np.array([self._hDev.get(), self._vDev.get()]) + def set(self, value: NDArray[np.float64]): - if self._hDev != self._vDev: - self._hDev.set(value[0]) - self._vDev.set(value[1]) - else: - # When h and v devices are identical, indexed - # values are expected - newValue = self._hDev.get() - newValue[self._hIdx] = value[0] - newValue[self._vIdx] = value[1] - self._hDev.set(newValue) + self._hDev.set(value[0]) + self._vDev.set(value[1]) def set_and_wait(self, value: NDArray[np.float64]): raise NotImplementedError("Not implemented yet.") diff --git a/pyaml/control/controlsystem.py b/pyaml/control/controlsystem.py index b36a8f3f..dc8e2877 100644 --- a/pyaml/control/controlsystem.py +++ b/pyaml/control/controlsystem.py @@ -10,7 +10,6 @@ from ..configuration.factory import Factory from ..configuration.unbound_element import UnboundElement from ..control.abstract_impl import ( - CSBPMArrayMapper, CSScalarAggregator, CSStrengthScalarAggregator, RBetatronTuneArray, @@ -94,15 +93,6 @@ def resolve_device(self, key: str | None) -> DeviceAccess | None: def resolve_devices(self, keys: list[str | None]) -> list[DeviceAccess | None]: return [self.resolve_device(key) for key in keys] - def attach_indexed(self, key: str | None, idx: int | None) -> DeviceAccess | None: - dev = self.resolve_device(key) - if dev is None: - return None - if idx is not None: - return self.attach_array([dev])[0] - else: - return self.attach([dev])[0] - def create_scalar_aggregator(self) -> ScalarAggregator: mod = self.scalar_aggregator() agg = Factory.build_object({"type": mod}) if mod is not None else None @@ -128,65 +118,15 @@ def create_magnet_hardware_aggregator(self, magnets: list[Magnet]) -> ScalarAggr return agg def create_bpm_aggregators(self, bpms: list[BPM]) -> list[ScalarAggregator]: - # return [None,None,None] - - if any([not b.model.is_pos_indexed() for b in bpms]): - # Aggregator for single BPM (all values are scalar) - agg = self.create_scalar_aggregator() - aggh = self.create_scalar_aggregator() - aggv = self.create_scalar_aggregator() - for b in bpms: - devs = self.attach(self.resolve_devices(b.model.get_pos_devices())) - agg.add_devices(devs) - aggh.add_devices(devs[0]) - aggv.add_devices(devs[1]) - return [agg, aggh, aggv] - - elif any([b.model.is_pos_indexed() for b in bpms]): - # Aggregator for indexed BPMs - allH = [] - hIdx = [] - allV = [] - vIdx = [] - allHV = [] - for b in bpms: - devs = self.attach_array(self.resolve_devices(b.model.get_pos_devices())) - devH = devs[0] - devV = devs[1] - if devH not in allH: - allH.append(devH) - if devH not in allHV: - allHV.append(devH) - if devV not in allV: - allV.append(devV) - if devV not in allHV: - allHV.append(devV) - hIdx.append(b.model.x_pos_index()) - vIdx.append(b.model.y_pos_index()) - - if len(allH) > 1 or len(allV) > 1: - # Does not support aggregator for individual BPM that - # returns an array of [x,y] - print("Warning, Individual BPM that returns [x,y]" + " are not read in parralell") - # Default to serialized readding - return [None, None, None] - - if devH == devV: - # [x0,y0,x1,y0,....] - idx = [] - for b in bpms: - idx.append(b.model.x_pos_index()) - idx.append(b.model.y_pos_index()) - hvIdx = [idx] - else: - hvIdx = [hIdx, vIdx] - - agg = CSBPMArrayMapper(allHV, hvIdx) - aggh = CSBPMArrayMapper(allH, [hIdx]) - aggv = CSBPMArrayMapper(allV, [vIdx]) - return [agg, aggh, aggv] - else: - raise PyAMLException("Indexed BPM and scalar values cannot be mixed in the same array") + agg = self.create_scalar_aggregator() + aggh = self.create_scalar_aggregator() + aggv = self.create_scalar_aggregator() + for b in bpms: + devs = self.attach(self.resolve_devices(b.model.get_pos_devices())) + agg.add_devices(devs) + aggh.add_devices(devs[0]) + aggv.add_devices(devs[1]) + return [agg, aggh, aggv] def fill_device(self, elements: list[Element]): """ @@ -236,19 +176,12 @@ 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] - 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) + pos_devs = self.attach(self.resolve_devices(e.model.get_pos_devices())) + tilt_devs = self.attach(self.resolve_devices([e.model.get_tilt_device()])) + offset_devs = self.attach(self.resolve_devices(e.model.get_offset_devices())) + positions = RBpmArray(pos_devs[0], pos_devs[1]) + tilt = RWBpmTiltScalar(tilt_devs[0]) + offsets = RWBpmOffsetArray(offset_devs[0], offset_devs[1]) e = e.attach(self, positions, offsets, tilt) self.add_bpm(e) diff --git a/tests/config/bad_catalog_duplicate_key.yaml b/tests/config/bad_catalog_duplicate_key.yaml index 60c6d13f..00608bbd 100644 --- a/tests/config/bad_catalog_duplicate_key.yaml +++ b/tests/config/bad_catalog_duplicate_key.yaml @@ -5,16 +5,16 @@ energy: 6e9 data_folder: /data/store devices: [] catalogs: - - type: pyaml.configuration.static_catalog + - type: tango.pyaml.static_catalog name: duplicate-refs entries: - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: duplicated/key device: type: tango.pyaml.attribute attribute: sr/test/one unit: A - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: duplicated/key device: type: tango.pyaml.attribute diff --git a/tests/config/bpms.yaml b/tests/config/bpms.yaml index 9937d68e..4a7b7349 100644 --- a/tests/config/bpms.yaml +++ b/tests/config/bpms.yaml @@ -40,10 +40,8 @@ devices: name: BPM_C01-04 model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 0 - y_pos_index: 1 - x_pos: srdiag/bpm/c01-04/Position - y_pos: srdiag/bpm/c01-04/Position + x_pos: srdiag/bpm/c01-04/SA_HPosition + y_pos: srdiag/bpm/c01-04/SA_VPosition - type: pyaml.magnet.cfm_magnet name: SH1A-C01 #Name of the element in the lattice model mapping: diff --git a/tests/config/catalog_named.yaml b/tests/config/catalog_named.yaml index ae465033..68c8d552 100644 --- a/tests/config/catalog_named.yaml +++ b/tests/config/catalog_named.yaml @@ -14,34 +14,34 @@ controls: catalog: device-catalog data_folder: /data/store catalogs: - - type: pyaml.configuration.static_catalog + - type: tango.pyaml.static_catalog name: device-catalog entries: - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c01-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-01/SA_HPosition unit: mm - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c01-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-01/SA_VPosition unit: mm - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c01-01/HOffset device: type: tango.pyaml.attribute attribute: srdiag/bpm/c01-01/HOffset unit: mm - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c01-01/VOffset device: type: tango.pyaml.attribute attribute: srdiag/bpm/c01-01/VOffset unit: mm - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c01-01/Tilt_Angle device: type: tango.pyaml.attribute diff --git a/tests/config/catalogs/bpms_catalogs.yaml b/tests/config/catalogs/bpms_catalogs.yaml index e04a28c2..e93d7ab0 100644 --- a/tests/config/catalogs/bpms_catalogs.yaml +++ b/tests/config/catalogs/bpms_catalogs.yaml @@ -1,63 +1,71 @@ -type: pyaml.configuration.static_catalog +type: tango.pyaml.static_catalog name: bpm-catalog entries: - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c01-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-01/SA_HPosition unit: mm - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c01-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-01/SA_VPosition unit: mm - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c01-01/HOffset device: type: tango.pyaml.attribute attribute: srdiag/bpm/c01-01/HOffset unit: mm - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c01-01/VOffset device: type: tango.pyaml.attribute attribute: srdiag/bpm/c01-01/VOffset unit: mm - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c01-01/Tilt_Angle device: type: tango.pyaml.attribute attribute: srdiag/bpm/c01-01/Tilt_Angle unit: rad - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c01-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-02/SA_HPosition unit: mm - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c01-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-02/SA_VPosition unit: mm - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c01-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-03/SA_HPosition unit: mm - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c01-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-03/SA_VPosition unit: mm - - type: pyaml.configuration.static_catalog_entry - key: srdiag/bpm/c01-04/Position + - type: tango.pyaml.static_catalog_entry + key: srdiag/bpm/c01-04/SA_HPosition device: - type: tango.pyaml.attribute_read_only + type: tango.pyaml.attribute_indexed + attribute: srdiag/bpm/c01-04/Position + index: 0 + unit: mm + - type: tango.pyaml.static_catalog_entry + key: srdiag/bpm/c01-04/SA_VPosition + device: + type: tango.pyaml.attribute_indexed attribute: srdiag/bpm/c01-04/Position + index: 1 unit: mm diff --git a/tests/config/catalogs/ebs_orbit_bpm_catalogs.yaml b/tests/config/catalogs/ebs_orbit_bpm_catalogs.yaml index d4e823a0..cc3f5549 100644 --- a/tests/config/catalogs/ebs_orbit_bpm_catalogs.yaml +++ b/tests/config/catalogs/ebs_orbit_bpm_catalogs.yaml @@ -1,3841 +1,3841 @@ -type: pyaml.configuration.static_catalog +type: tango.pyaml.static_catalog name: bpm-catalog entries: - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c04-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-01/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c04-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-01/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c04-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-02/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c04-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-02/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c04-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-03/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c04-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-03/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c04-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-04/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c04-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-04/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c04-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-05/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c04-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-05/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c04-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-06/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c04-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-06/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c04-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-07/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c04-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-07/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c04-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-08/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c04-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-08/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c04-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-09/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c04-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-09/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c04-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-10/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c04-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-10/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c05-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-01/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c05-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-01/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c05-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-02/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c05-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-02/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c05-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-03/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c05-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-03/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c05-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-04/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c05-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-04/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c05-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-05/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c05-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-05/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c05-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-06/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c05-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-06/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c05-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-07/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c05-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-07/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c05-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-08/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c05-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-08/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c05-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-09/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c05-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-09/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c05-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-10/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c05-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c05-10/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c06-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-01/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c06-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-01/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c06-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-02/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c06-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-02/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c06-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-03/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c06-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-03/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c06-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-04/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c06-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-04/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c06-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-05/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c06-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-05/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c06-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-06/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c06-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-06/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c06-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-07/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c06-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-07/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c06-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-08/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c06-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-08/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c06-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-09/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c06-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-09/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c06-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-10/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c06-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c06-10/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c07-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-01/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c07-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-01/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c07-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-02/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c07-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-02/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c07-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-03/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c07-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-03/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c07-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-04/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c07-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-04/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c07-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-05/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c07-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-05/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c07-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-06/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c07-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-06/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c07-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-07/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c07-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-07/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c07-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-08/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c07-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-08/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c07-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-09/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c07-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-09/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c07-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-10/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c07-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c07-10/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c08-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-01/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c08-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-01/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c08-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-02/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c08-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-02/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c08-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-03/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c08-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-03/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c08-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-04/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c08-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-04/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c08-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-05/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c08-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-05/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c08-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-06/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c08-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-06/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c08-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-07/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c08-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-07/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c08-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-08/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c08-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-08/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c08-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-09/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c08-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-09/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c08-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-10/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c08-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c08-10/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c09-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-01/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c09-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-01/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c09-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-02/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c09-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-02/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c09-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-03/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c09-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-03/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c09-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-04/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c09-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-04/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c09-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-05/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c09-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-05/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c09-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-06/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c09-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-06/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c09-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-07/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c09-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-07/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c09-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-08/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c09-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-08/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c09-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-09/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c09-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-09/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c09-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-10/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c09-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c09-10/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c10-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-01/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c10-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-01/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c10-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-02/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c10-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-02/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c10-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-03/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c10-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-03/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c10-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-04/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c10-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-04/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c10-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-05/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c10-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-05/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c10-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-06/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c10-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-06/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c10-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-07/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c10-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-07/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c10-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-08/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c10-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-08/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c10-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-09/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c10-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-09/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c10-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-10/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c10-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c10-10/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c11-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-01/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c11-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-01/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c11-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-02/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c11-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-02/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c11-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-03/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c11-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-03/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c11-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-04/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c11-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-04/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c11-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-05/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c11-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-05/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c11-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-06/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c11-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-06/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c11-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-07/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c11-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-07/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c11-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-08/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c11-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-08/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c11-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-09/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c11-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-09/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c11-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-10/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c11-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c11-10/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c12-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-01/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c12-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-01/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c12-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-02/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c12-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-02/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c12-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-03/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c12-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-03/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c12-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-04/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c12-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-04/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c12-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-05/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c12-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-05/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c12-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-06/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c12-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-06/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c12-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-07/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c12-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-07/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c12-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-08/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c12-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-08/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c12-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-09/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c12-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-09/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c12-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-10/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c12-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c12-10/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c13-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-01/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c13-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-01/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c13-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-02/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c13-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-02/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c13-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-03/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c13-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-03/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c13-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-04/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c13-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-04/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c13-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-05/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c13-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-05/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c13-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-06/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c13-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-06/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c13-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-07/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c13-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-07/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c13-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-08/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c13-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-08/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c13-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-09/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c13-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-09/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c13-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-10/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c13-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c13-10/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c14-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-01/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c14-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-01/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c14-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-02/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c14-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-02/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c14-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-03/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c14-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-03/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c14-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-04/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c14-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-04/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c14-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-05/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c14-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-05/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c14-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-06/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c14-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-06/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c14-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-07/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c14-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-07/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c14-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-08/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c14-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-08/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c14-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-09/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c14-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-09/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c14-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-10/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c14-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c14-10/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c15-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-01/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c15-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-01/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c15-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-02/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c15-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-02/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c15-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-03/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c15-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-03/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c15-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-04/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c15-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-04/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c15-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-05/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c15-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-05/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c15-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-06/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c15-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-06/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c15-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-07/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c15-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-07/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c15-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-08/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c15-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-08/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c15-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-09/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c15-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-09/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c15-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-10/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c15-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c15-10/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c16-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-01/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c16-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-01/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c16-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-02/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c16-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-02/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c16-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-03/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c16-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-03/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c16-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-04/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c16-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-04/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c16-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-05/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c16-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-05/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c16-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-06/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c16-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-06/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c16-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-07/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c16-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-07/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c16-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-08/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c16-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-08/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c16-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-09/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c16-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-09/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c16-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-10/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c16-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c16-10/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c17-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-01/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c17-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-01/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c17-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-02/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c17-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-02/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c17-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-03/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c17-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-03/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c17-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-04/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c17-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-04/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c17-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-05/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c17-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-05/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c17-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-06/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c17-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-06/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c17-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-07/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c17-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-07/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c17-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-08/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c17-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-08/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c17-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-09/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c17-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-09/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c17-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-10/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c17-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c17-10/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c18-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-01/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c18-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-01/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c18-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-02/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c18-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-02/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c18-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-03/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c18-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-03/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c18-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-04/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c18-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-04/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c18-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-05/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c18-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-05/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c18-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-06/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c18-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-06/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c18-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-07/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c18-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-07/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c18-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-08/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c18-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-08/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c18-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-09/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c18-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-09/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c18-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-10/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c18-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c18-10/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c19-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-01/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c19-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-01/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c19-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-02/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c19-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-02/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c19-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-03/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c19-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-03/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c19-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-04/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c19-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-04/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c19-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-05/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c19-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-05/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c19-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-06/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c19-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-06/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c19-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-07/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c19-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-07/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c19-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-08/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c19-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-08/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c19-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-09/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c19-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-09/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c19-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-10/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c19-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c19-10/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c20-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-01/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c20-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-01/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c20-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-02/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c20-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-02/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c20-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-03/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c20-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-03/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c20-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-04/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c20-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-04/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c20-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-05/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c20-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-05/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c20-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-06/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c20-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-06/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c20-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-07/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c20-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-07/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c20-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-08/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c20-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-08/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c20-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-09/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c20-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-09/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c20-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-10/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c20-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c20-10/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c21-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-01/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c21-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-01/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c21-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-02/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c21-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-02/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c21-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-03/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c21-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-03/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c21-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-04/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c21-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-04/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c21-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-05/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c21-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-05/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c21-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-06/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c21-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-06/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c21-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-07/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c21-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-07/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c21-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-08/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c21-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-08/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c21-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-09/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c21-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-09/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c21-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-10/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c21-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c21-10/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c22-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-01/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c22-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-01/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c22-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-02/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c22-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-02/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c22-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-03/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c22-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-03/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c22-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-04/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c22-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-04/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c22-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-05/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c22-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-05/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c22-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-06/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c22-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-06/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c22-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-07/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c22-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-07/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c22-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-08/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c22-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-08/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c22-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-09/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c22-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-09/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c22-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-10/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c22-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c22-10/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c23-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-01/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c23-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-01/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c23-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-02/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c23-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-02/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c23-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-03/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c23-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-03/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c23-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-04/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c23-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-04/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c23-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-05/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c23-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-05/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c23-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-06/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c23-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-06/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c23-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-07/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c23-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-07/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c23-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-08/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c23-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-08/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c23-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-09/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c23-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-09/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c23-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-10/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c23-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c23-10/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c24-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-01/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c24-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-01/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c24-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-02/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c24-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-02/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c24-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-03/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c24-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-03/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c24-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-04/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c24-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-04/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c24-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-05/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c24-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-05/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c24-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-06/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c24-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-06/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c24-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-07/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c24-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-07/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c24-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-08/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c24-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-08/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c24-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-09/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c24-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-09/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c24-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-10/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c24-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c24-10/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c25-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-01/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c25-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-01/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c25-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-02/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c25-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-02/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c25-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-03/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c25-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-03/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c25-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-04/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c25-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-04/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c25-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-05/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c25-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-05/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c25-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-06/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c25-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-06/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c25-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-07/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c25-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-07/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c25-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-08/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c25-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-08/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c25-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-09/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c25-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-09/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c25-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-10/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c25-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c25-10/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c26-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-01/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c26-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-01/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c26-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-02/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c26-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-02/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c26-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-03/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c26-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-03/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c26-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-04/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c26-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-04/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c26-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-05/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c26-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-05/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c26-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-06/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c26-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-06/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c26-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-07/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c26-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-07/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c26-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-08/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c26-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-08/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c26-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-09/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c26-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-09/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c26-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-10/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c26-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c26-10/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c27-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-01/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c27-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-01/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c27-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-02/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c27-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-02/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c27-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-03/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c27-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-03/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c27-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-04/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c27-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-04/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c27-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-05/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c27-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-05/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c27-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-06/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c27-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-06/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c27-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-07/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c27-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-07/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c27-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-08/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c27-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-08/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c27-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-09/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c27-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-09/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c27-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-10/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c27-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c27-10/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c28-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-01/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c28-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-01/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c28-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-02/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c28-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-02/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c28-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-03/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c28-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-03/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c28-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-04/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c28-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-04/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c28-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-05/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c28-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-05/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c28-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-06/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c28-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-06/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c28-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-07/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c28-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-07/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c28-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-08/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c28-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-08/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c28-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-09/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c28-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-09/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c28-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-10/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c28-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c28-10/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c29-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-01/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c29-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-01/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c29-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-02/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c29-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-02/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c29-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-03/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c29-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-03/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c29-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-04/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c29-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-04/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c29-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-05/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c29-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-05/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c29-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-06/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c29-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-06/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c29-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-07/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c29-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-07/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c29-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-08/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c29-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-08/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c29-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-09/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c29-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-09/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c29-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-10/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c29-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c29-10/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c30-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-01/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c30-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-01/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c30-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-02/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c30-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-02/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c30-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-03/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c30-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-03/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c30-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-04/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c30-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-04/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c30-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-05/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c30-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-05/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c30-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-06/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c30-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-06/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c30-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-07/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c30-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-07/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c30-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-08/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c30-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-08/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c30-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-09/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c30-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-09/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c30-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-10/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c30-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c30-10/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c31-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-01/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c31-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-01/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c31-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-02/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c31-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-02/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c31-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-03/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c31-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-03/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c31-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-04/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c31-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-04/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c31-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-05/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c31-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-05/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c31-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-06/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c31-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-06/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c31-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-07/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c31-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-07/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c31-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-08/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c31-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-08/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c31-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-09/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c31-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-09/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c31-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-10/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c31-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c31-10/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c32-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-01/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c32-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-01/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c32-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-02/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c32-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-02/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c32-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-03/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c32-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-03/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c32-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-04/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c32-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-04/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c32-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-05/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c32-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-05/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c32-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-06/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c32-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-06/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c32-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-07/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c32-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-07/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c32-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-08/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c32-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-08/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c32-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-09/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c32-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-09/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c32-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-10/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c32-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c32-10/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c01-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-01/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c01-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-01/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c01-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-02/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c01-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-02/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c01-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-03/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c01-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-03/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c01-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-04/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c01-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-04/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c01-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-05/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c01-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-05/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c01-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-06/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c01-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-06/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c01-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-07/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c01-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-07/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c01-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-08/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c01-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-08/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c01-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-09/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c01-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-09/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c01-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-10/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c01-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c01-10/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c02-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-01/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c02-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-01/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c02-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-02/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c02-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-02/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c02-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-03/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c02-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-03/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c02-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-04/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c02-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-04/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c02-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-05/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c02-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-05/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c02-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-06/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c02-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-06/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c02-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-07/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c02-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-07/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c02-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-08/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c02-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-08/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c02-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-09/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c02-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-09/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c02-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-10/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c02-10/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c02-10/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c03-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-01/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c03-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-01/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c03-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-02/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c03-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-02/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c03-03/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-03/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c03-03/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-03/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c03-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-04/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c03-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-04/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c03-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-05/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c03-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-05/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c03-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-06/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c03-06/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-06/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c03-07/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-07/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c03-07/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-07/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c03-08/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-08/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c03-08/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-08/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c03-09/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-09/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c03-09/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-09/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c03-10/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c03-10/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c03-10/SA_VPosition device: type: tango.pyaml.attribute_read_only diff --git a/tests/config/catalogs/shared_c04_bpm_catalogs.yaml b/tests/config/catalogs/shared_c04_bpm_catalogs.yaml index 48c2f9ae..ec173578 100644 --- a/tests/config/catalogs/shared_c04_bpm_catalogs.yaml +++ b/tests/config/catalogs/shared_c04_bpm_catalogs.yaml @@ -1,61 +1,61 @@ -type: pyaml.configuration.static_catalog +type: tango.pyaml.static_catalog name: bpm-catalog entries: - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c04-01/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-01/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c04-01/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-01/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c04-02/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-02/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c04-02/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-02/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c04-04/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-04/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c04-04/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-04/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c04-05/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-05/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c04-05/SA_VPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-05/SA_VPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c04-06/SA_HPosition device: type: tango.pyaml.attribute_read_only attribute: srdiag/bpm/c04-06/SA_HPosition unit: m - - type: pyaml.configuration.static_catalog_entry + - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c04-06/SA_VPosition device: type: tango.pyaml.attribute_read_only diff --git a/tests/dummy_cs/tango-pyaml/tango/pyaml/attribute_indexed.py b/tests/dummy_cs/tango-pyaml/tango/pyaml/attribute_indexed.py new file mode 100644 index 00000000..42793c56 --- /dev/null +++ b/tests/dummy_cs/tango-pyaml/tango/pyaml/attribute_indexed.py @@ -0,0 +1,68 @@ +from pydantic import BaseModel, ConfigDict + +from pyaml.control.deviceaccess import DeviceAccess +from pyaml.control.readback_value import Value + +from .attribute_store import get_state + +PYAMLCLASS: str = "AttributeIndexed" + + +class ConfigModel(BaseModel): + model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") + + attribute: str + index: int + unit: str = "" + + +class AttributeIndexed(DeviceAccess): + """ + Read-only DeviceAccess that extracts one scalar element from a vector attribute. + + Used when a single hardware attribute exposes a position vector and each + catalog entry maps to one component identified by *index*. The underlying + vector attribute is registered in the shared state store so tests can + pre-populate it with a list before loading the accelerator. + """ + + def __init__(self, cfg: ConfigModel): + super().__init__() + self._cfg = cfg + state = get_state(cfg.attribute, unit=cfg.unit) + state.is_array = True + + def set_array(self, is_array: bool): + # The underlying hardware attribute is always a vector; this device + # presents a scalar view of it, so we always mark the store as array. + get_state(self._cfg.attribute, unit=self._cfg.unit).is_array = True + + def name(self) -> str: + return f"{self._cfg.attribute}[{self._cfg.index}]" + + def measure_name(self) -> str: + return self.name() + + def set(self, value): + raise Exception(f"{self._cfg.attribute}[{self._cfg.index}] is read only") + + def set_and_wait(self, value): + raise Exception(f"{self._cfg.attribute}[{self._cfg.index}] is read only") + + def get(self): + state = get_state(self._cfg.attribute, unit=self._cfg.unit) + return state.value[self._cfg.index] + + def readback(self) -> Value: + state = get_state(self._cfg.attribute, unit=self._cfg.unit) + value = state.value if state.readback is None else state.readback + return Value(value[self._cfg.index]) + + def unit(self) -> str: + return get_state(self._cfg.attribute, unit=self._cfg.unit).unit + + def get_range(self) -> list[float]: + return [] + + def check_device_availability(self) -> bool: + return True diff --git a/tests/dummy_cs/tango-pyaml/tango/pyaml/controlsystem.py b/tests/dummy_cs/tango-pyaml/tango/pyaml/controlsystem.py index 7abb36f3..4fae6806 100644 --- a/tests/dummy_cs/tango-pyaml/tango/pyaml/controlsystem.py +++ b/tests/dummy_cs/tango-pyaml/tango/pyaml/controlsystem.py @@ -37,7 +37,12 @@ def _attach(self, devs: list[DeviceAccess], is_array: bool) -> list[DeviceAccess for d in devs: if d is not None: full_name = "//" + self._cfg.tango_host + "/" + d._cfg.attribute - if full_name not in self.__DEVICES: + # Include the index (if any) so that two AttributeIndexed devices + # pointing to the same vector attribute but different indices get + # separate entries in the cache. + index = getattr(d._cfg, "index", None) + cache_key = full_name if index is None else f"{full_name}[{index}]" + if cache_key not in self.__DEVICES: # Shallow copy the object newDev = copy.copy(d) # Shallow copy the config object @@ -45,8 +50,8 @@ def _attach(self, devs: list[DeviceAccess], is_array: bool) -> list[DeviceAccess newDev._cfg = copy.copy(d._cfg) newDev._cfg.attribute = full_name newDev.set_array(is_array) - self.__DEVICES[full_name] = newDev - newDevs.append(self.__DEVICES[full_name]) + self.__DEVICES[cache_key] = newDev + newDevs.append(self.__DEVICES[cache_key]) else: newDevs.append(None) return newDevs diff --git a/tests/dummy_cs/tango-pyaml/tango/pyaml/static_catalog.py b/tests/dummy_cs/tango-pyaml/tango/pyaml/static_catalog.py new file mode 100644 index 00000000..fe45b49b --- /dev/null +++ b/tests/dummy_cs/tango-pyaml/tango/pyaml/static_catalog.py @@ -0,0 +1,34 @@ +from pydantic import ConfigDict + +from pyaml import PyAMLException +from pyaml.configuration.catalog import Catalog, CatalogConfigModel +from pyaml.control.deviceaccess import DeviceAccess + +from .static_catalog_entry import StaticCatalogEntry + +PYAMLCLASS = "StaticCatalog" + + +class ConfigModel(CatalogConfigModel): + model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") + + entries: list[StaticCatalogEntry] + + +class StaticCatalog(Catalog): + def __init__(self, cfg: ConfigModel): + super().__init__(cfg) + if len(cfg.entries) == 0: + raise PyAMLException("StaticCatalog.entries must contain at least one entry") + self._refs: dict[str, DeviceAccess] = {} + for entry in cfg.entries: + key = entry.get_key() + if key in self._refs: + raise PyAMLException(f"StaticCatalog.entries contains duplicate key '{key}'") + self._refs[key] = entry.get_device() + + def resolve(self, key: str) -> DeviceAccess: + try: + return self._refs[key] + except KeyError as exc: + raise PyAMLException(f"Catalog '{self.get_name()}' cannot resolve key '{key}'") from exc diff --git a/tests/dummy_cs/tango-pyaml/tango/pyaml/static_catalog_entry.py b/tests/dummy_cs/tango-pyaml/tango/pyaml/static_catalog_entry.py new file mode 100644 index 00000000..b9ed8c92 --- /dev/null +++ b/tests/dummy_cs/tango-pyaml/tango/pyaml/static_catalog_entry.py @@ -0,0 +1,23 @@ +from pydantic import BaseModel, ConfigDict + +from pyaml.control.deviceaccess import DeviceAccess + +PYAMLCLASS = "StaticCatalogEntry" + + +class ConfigModel(BaseModel): + model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") + + key: str + device: DeviceAccess + + +class StaticCatalogEntry: + def __init__(self, cfg: ConfigModel): + self._cfg = cfg + + def get_key(self) -> str: + return self._cfg.key + + def get_device(self) -> DeviceAccess: + return self._cfg.device diff --git a/tests/test_catalogs.py b/tests/test_catalogs.py index e7fa7534..cbb74702 100644 --- a/tests/test_catalogs.py +++ b/tests/test_catalogs.py @@ -4,7 +4,6 @@ from pyaml import PyAMLConfigException, PyAMLException from pyaml.accelerator import Accelerator from pyaml.configuration.catalog import Catalog, CatalogConfigModel, CatalogResolver -from pyaml.configuration.static_catalog import StaticCatalog from pyaml.control.deviceaccess import DeviceAccess @@ -96,11 +95,11 @@ def test_inline_catalog_is_supported(install_test_package): "tango_host": "ebs-simu-3:10000", "name": "live", "catalog": { - "type": "pyaml.configuration.static_catalog", + "type": "tango.pyaml.static_catalog", "name": "inline-live", "entries": [ { - "type": "pyaml.configuration.static_catalog_entry", + "type": "tango.pyaml.static_catalog_entry", "key": "BPM_C02-01/x", "device": { "type": "tango.pyaml.attribute_read_only", @@ -109,7 +108,7 @@ def test_inline_catalog_is_supported(install_test_package): }, }, { - "type": "pyaml.configuration.static_catalog_entry", + "type": "tango.pyaml.static_catalog_entry", "key": "BPM_C02-01/y", "device": { "type": "tango.pyaml.attribute_read_only", @@ -146,6 +145,8 @@ def test_inline_catalog_is_supported(install_test_package): indirect=True, ) def test_catalog_is_notified_when_attached_to_control_systems(install_test_package, monkeypatch): + from tango.pyaml.static_catalog import StaticCatalog + attached = [] original = StaticCatalog.attach_control_system @@ -239,11 +240,11 @@ def test_unresolved_catalog_key_raises_runtime_error(install_test_package): "data_folder": "/data/store", "catalogs": [ { - "type": "pyaml.configuration.static_catalog", + "type": "tango.pyaml.static_catalog", "name": "device-catalog", "entries": [ { - "type": "pyaml.configuration.static_catalog_entry", + "type": "tango.pyaml.static_catalog_entry", "key": "BPM_C03-01/x", "device": { "type": "tango.pyaml.attribute_read_only", @@ -294,11 +295,11 @@ def test_duplicate_top_level_catalog_names_raise_config_error(install_test_packa "devices": [], "catalogs": [ { - "type": "pyaml.configuration.static_catalog", + "type": "tango.pyaml.static_catalog", "name": "duplicate", "entries": [ { - "type": "pyaml.configuration.static_catalog_entry", + "type": "tango.pyaml.static_catalog_entry", "key": "QF1/current", "device": { "type": "tango.pyaml.attribute", @@ -309,11 +310,11 @@ def test_duplicate_top_level_catalog_names_raise_config_error(install_test_packa ], }, { - "type": "pyaml.configuration.static_catalog", + "type": "tango.pyaml.static_catalog", "name": "duplicate", "entries": [ { - "type": "pyaml.configuration.static_catalog_entry", + "type": "tango.pyaml.static_catalog_entry", "key": "QF2/current", "device": { "type": "tango.pyaml.attribute", @@ -331,3 +332,82 @@ def test_duplicate_top_level_catalog_names_raise_config_error(install_test_packa def test_duplicate_static_catalog_entry_keys_raise_config_error(): with pytest.raises(PyAMLConfigException, match="duplicate key 'duplicated/key'"): Accelerator.load("tests/config/bad_catalog_duplicate_key.yaml") + + +@pytest.mark.parametrize( + "install_test_package", + [{"name": "tango-pyaml", "path": "tests/dummy_cs/tango-pyaml"}], + indirect=True, +) +def test_indexed_catalog_entry_extracts_scalar_from_vector_attribute(install_test_package): + """ + Verify that a catalog can map two keys to different indices of the same + vector attribute. The BPM sees two independent scalar DeviceAccess objects + (one per axis) even though the hardware exposes a single position vector. + The indexing is fully transparent to pyAML — it happens in the CS backend. + """ + from tango.pyaml.attribute_store import set_attribute + + set_attribute("srdiag/bpm/c01-04/Position", [1.5, -0.3], unit="mm") + + sr = Accelerator.from_dict( + { + "type": "pyaml.accelerator", + "facility": "ESRF", + "machine": "sr", + "energy": 6e9, + "data_folder": "/data/store", + "catalogs": [ + { + "type": "tango.pyaml.static_catalog", + "name": "bpm-catalog", + "entries": [ + { + "type": "tango.pyaml.static_catalog_entry", + "key": "bpm/SA_HPosition", + "device": { + "type": "tango.pyaml.attribute_indexed", + "attribute": "srdiag/bpm/c01-04/Position", + "index": 0, + "unit": "mm", + }, + }, + { + "type": "tango.pyaml.static_catalog_entry", + "key": "bpm/SA_VPosition", + "device": { + "type": "tango.pyaml.attribute_indexed", + "attribute": "srdiag/bpm/c01-04/Position", + "index": 1, + "unit": "mm", + }, + }, + ], + } + ], + "controls": [ + { + "type": "tango.pyaml.controlsystem", + "tango_host": "ebs-simu-3:10000", + "name": "live", + "catalog": "bpm-catalog", + } + ], + "devices": [ + { + "type": "pyaml.bpm.bpm", + "name": "BPM_TEST", + "model": { + "type": "pyaml.bpm.bpm_simple_model", + "x_pos": "bpm/SA_HPosition", + "y_pos": "bpm/SA_VPosition", + }, + } + ], + } + ) + + bpm = sr.live.get_bpm("BPM_TEST") + positions = bpm.positions.get() + assert np.isclose(positions[0], 1.5) + assert np.isclose(positions[1], -0.3) diff --git a/tests/test_configuration_manager.py b/tests/test_configuration_manager.py index 84a06da3..782526fa 100644 --- a/tests/test_configuration_manager.py +++ b/tests/test_configuration_manager.py @@ -200,7 +200,7 @@ def test_configuration_manager_tracks_catalogs_as_named_category(config_root_pat assert manager.categories() == ["controls", "catalogs", "devices"] assert manager.keys("catalogs") == ["device-catalog"] assert manager.has("catalogs", "device-catalog") - assert manager.get("catalogs", "device-catalog")["type"] == "pyaml.configuration.static_catalog" + assert manager.get("catalogs", "device-catalog")["type"] == "tango.pyaml.static_catalog" assert manager.get("catalogs", "device-catalog")["entries"][0]["key"] == "srdiag/bpm/c01-01/SA_HPosition" assert manager.catalogs == ["device-catalog"] @@ -212,7 +212,7 @@ def test_configuration_manager_adds_catalog_fragment(config_root_path): assert manager.categories() == ["catalogs"] assert manager.keys("catalogs") == ["bpm-catalog"] assert manager.has("catalogs", "bpm-catalog") - assert manager.get("catalogs", "bpm-catalog")["type"] == "pyaml.configuration.static_catalog" + assert manager.get("catalogs", "bpm-catalog")["type"] == "tango.pyaml.static_catalog" assert manager.get("catalogs", "bpm-catalog")["entries"][0]["key"] == "srdiag/bpm/c04-01/SA_HPosition" @@ -308,7 +308,7 @@ def test_configuration_manager_repr_includes_catalogs(config_root_path): assert str(manager) == output assert "Catalogs:" in output - assert "device-catalog (pyaml.configuration.static_catalog) entries=5 source=catalog_named.yaml" in output + assert "device-catalog (tango.pyaml.static_catalog) entries=5 source=catalog_named.yaml" in output def test_configuration_manager_yellow_pages_like_shortcuts( From 53aa84338f18f87ceab07211e7ec8d2d390eacf7 Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Fri, 24 Apr 2026 18:56:31 +0200 Subject: [PATCH 14/19] Evolutions on tests to reflect changes in tango-pyaml --- tests/config/catalogs/bpms_catalogs.yaml | 4 +- .../tango-pyaml/tango/pyaml/attribute.py | 73 +++++++++---------- .../tango/pyaml/attribute_indexed.py | 68 ----------------- .../tango/pyaml/attribute_read_only.py | 32 ++------ .../tango-pyaml/tango/pyaml/controlsystem.py | 33 ++++----- tests/test_catalogs.py | 4 +- tests/test_dummy_tango_attributes.py | 2 +- 7 files changed, 61 insertions(+), 155 deletions(-) delete mode 100644 tests/dummy_cs/tango-pyaml/tango/pyaml/attribute_indexed.py diff --git a/tests/config/catalogs/bpms_catalogs.yaml b/tests/config/catalogs/bpms_catalogs.yaml index e93d7ab0..ff800378 100644 --- a/tests/config/catalogs/bpms_catalogs.yaml +++ b/tests/config/catalogs/bpms_catalogs.yaml @@ -58,14 +58,14 @@ entries: - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c01-04/SA_HPosition device: - type: tango.pyaml.attribute_indexed + type: tango.pyaml.attribute attribute: srdiag/bpm/c01-04/Position index: 0 unit: mm - type: tango.pyaml.static_catalog_entry key: srdiag/bpm/c01-04/SA_VPosition device: - type: tango.pyaml.attribute_indexed + type: tango.pyaml.attribute attribute: srdiag/bpm/c01-04/Position index: 1 unit: mm diff --git a/tests/dummy_cs/tango-pyaml/tango/pyaml/attribute.py b/tests/dummy_cs/tango-pyaml/tango/pyaml/attribute.py index cc19566f..053ab8fb 100644 --- a/tests/dummy_cs/tango-pyaml/tango/pyaml/attribute.py +++ b/tests/dummy_cs/tango-pyaml/tango/pyaml/attribute.py @@ -1,5 +1,8 @@ +from typing import Optional + from pydantic import BaseModel, ConfigDict +from pyaml.common.exception import PyAMLException from pyaml.control.deviceaccess import DeviceAccess from pyaml.control.readback_value import Value @@ -13,85 +16,77 @@ class ConfigModel(BaseModel): attribute: str unit: str = "" - range: tuple[float | None, float | None] | None = None + range: Optional[tuple[Optional[float], Optional[float]]] = None + index: Optional[int] = None class Attribute(DeviceAccess): """ - Class that implements a default device class that just prints out - values (Debugging purpose) + Dummy attribute backed by a shared in-memory state store. + + When ``index`` is set the attribute presents a read-only scalar view of + one element of a vector attribute; writes are rejected and the underlying + store is automatically marked as an array. """ - def __init__(self, cfg: ConfigModel, is_array=False): + def __init__(self, cfg: ConfigModel): super().__init__() self._cfg = cfg - self._setpoint = cfg.attribute - self._readback = cfg.attribute - # Register metadata early. The value may already have been initialized - # by a test before the accelerator configuration is loaded. - get_state(cfg.attribute, unit=cfg.unit, range=self._range()) + self._index = cfg.index + state = get_state(cfg.attribute, unit=cfg.unit, range=cfg.range) + if self._index is not None: + state.is_array = True def set_array(self, is_array: bool): """Mark the shared value as array-like without initializing it.""" - get_state( - self._cfg.attribute, - unit=self._cfg.unit, - range=self._range(), - ).is_array = is_array + get_state(self._cfg.attribute, unit=self._cfg.unit, range=self._cfg.range).is_array = is_array def name(self) -> str: - return self._setpoint + if self._index is not None: + return f"{self._cfg.attribute}[{self._index}]" + return self._cfg.attribute def measure_name(self) -> str: - return self._readback + return self.name() def set(self, value): - print(f"{self._cfg.attribute}:{value}") - state = get_state(self._cfg.attribute, unit=self._cfg.unit, range=self._range()) + if self._index is not None: + raise PyAMLException( + f"Indexed attribute '{self._cfg.attribute}[{self._index}]' does not support individual element writes." + ) + state = get_state(self._cfg.attribute, unit=self._cfg.unit, range=self._cfg.range) state.value = value def set_and_wait(self, value): self.set(value) def get(self): - state = get_state(self._cfg.attribute, unit=self._cfg.unit, range=self._range()) + state = get_state(self._cfg.attribute, unit=self._cfg.unit, range=self._cfg.range) + if self._index is not None: + return state.value[self._index] return state.value def readback(self): """Return readback from shared state, preserving scalar/array shape.""" - state = get_state( - self._cfg.attribute, - unit=self._cfg.unit, - range=self._range(), - ) + state = get_state(self._cfg.attribute, unit=self._cfg.unit, range=self._cfg.range) value = state.value if state.readback is None else state.readback + if self._index is not None: + return Value(value[self._index]) if state.is_array: return [Value(v) for v in value] return Value(value) def unit(self) -> str: - state = get_state(self._cfg.attribute, unit=self._cfg.unit, range=self._range()) - return state.unit + return get_state(self._cfg.attribute, unit=self._cfg.unit, range=self._cfg.range).unit def __repr__(self): return repr(self._cfg).replace("ConfigModel", self.__class__.__name__) def get_range(self) -> list[float]: - state = get_state( - self._cfg.attribute, - unit=self._cfg.unit, - range=self._range(), - ) + state = get_state(self._cfg.attribute, unit=self._cfg.unit, range=self._cfg.range) if state.range is None: return [None, None] - return [ - state.range[0] if state.range[0] is not None else None, - state.range[1] if state.range[1] is not None else None, - ] + return [state.range[0], state.range[1]] def check_device_availability(self) -> bool: return True - - def _range(self): - """Return optional range metadata for models that define it.""" - return getattr(self._cfg, "range", None) diff --git a/tests/dummy_cs/tango-pyaml/tango/pyaml/attribute_indexed.py b/tests/dummy_cs/tango-pyaml/tango/pyaml/attribute_indexed.py deleted file mode 100644 index 42793c56..00000000 --- a/tests/dummy_cs/tango-pyaml/tango/pyaml/attribute_indexed.py +++ /dev/null @@ -1,68 +0,0 @@ -from pydantic import BaseModel, ConfigDict - -from pyaml.control.deviceaccess import DeviceAccess -from pyaml.control.readback_value import Value - -from .attribute_store import get_state - -PYAMLCLASS: str = "AttributeIndexed" - - -class ConfigModel(BaseModel): - model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") - - attribute: str - index: int - unit: str = "" - - -class AttributeIndexed(DeviceAccess): - """ - Read-only DeviceAccess that extracts one scalar element from a vector attribute. - - Used when a single hardware attribute exposes a position vector and each - catalog entry maps to one component identified by *index*. The underlying - vector attribute is registered in the shared state store so tests can - pre-populate it with a list before loading the accelerator. - """ - - def __init__(self, cfg: ConfigModel): - super().__init__() - self._cfg = cfg - state = get_state(cfg.attribute, unit=cfg.unit) - state.is_array = True - - def set_array(self, is_array: bool): - # The underlying hardware attribute is always a vector; this device - # presents a scalar view of it, so we always mark the store as array. - get_state(self._cfg.attribute, unit=self._cfg.unit).is_array = True - - def name(self) -> str: - return f"{self._cfg.attribute}[{self._cfg.index}]" - - def measure_name(self) -> str: - return self.name() - - def set(self, value): - raise Exception(f"{self._cfg.attribute}[{self._cfg.index}] is read only") - - def set_and_wait(self, value): - raise Exception(f"{self._cfg.attribute}[{self._cfg.index}] is read only") - - def get(self): - state = get_state(self._cfg.attribute, unit=self._cfg.unit) - return state.value[self._cfg.index] - - def readback(self) -> Value: - state = get_state(self._cfg.attribute, unit=self._cfg.unit) - value = state.value if state.readback is None else state.readback - return Value(value[self._cfg.index]) - - def unit(self) -> str: - return get_state(self._cfg.attribute, unit=self._cfg.unit).unit - - def get_range(self) -> list[float]: - return [] - - def check_device_availability(self) -> bool: - return True diff --git a/tests/dummy_cs/tango-pyaml/tango/pyaml/attribute_read_only.py b/tests/dummy_cs/tango-pyaml/tango/pyaml/attribute_read_only.py index b42b5446..5c5809dd 100644 --- a/tests/dummy_cs/tango-pyaml/tango/pyaml/attribute_read_only.py +++ b/tests/dummy_cs/tango-pyaml/tango/pyaml/attribute_read_only.py @@ -1,39 +1,19 @@ -from pydantic import BaseModel, ConfigDict +from pyaml.common.exception import PyAMLException -from pyaml.control.readback_value import Value - -from .attribute import Attribute +from .attribute import Attribute, ConfigModel PYAMLCLASS: str = "AttributeReadOnly" -class ConfigModel(BaseModel): - model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") - - attribute: str - unit: str = "" - - class AttributeReadOnly(Attribute): - """ - Class that implements a default device class that just prints out - values (Debugging purpose) - """ - def __init__(self, cfg: ConfigModel): super().__init__(cfg) def set(self, value): - raise Exception(f"{self._cfg.attribute} is read only attribute") + raise PyAMLException(f"Tango attribute {self._cfg.attribute} is not writable.") def set_and_wait(self, value): - raise Exception(f"{self._cfg.attribute} is read only attribute") - - def unit(self) -> str: - return super().unit() - - def get_range(self) -> list[float]: - return super().get_range() + raise PyAMLException(f"Tango attribute {self._cfg.attribute} is not writable.") - def check_device_availability(self) -> bool: - return True + def get(self): + return self.readback().value diff --git a/tests/dummy_cs/tango-pyaml/tango/pyaml/controlsystem.py b/tests/dummy_cs/tango-pyaml/tango/pyaml/controlsystem.py index 4fae6806..4420e24a 100644 --- a/tests/dummy_cs/tango-pyaml/tango/pyaml/controlsystem.py +++ b/tests/dummy_cs/tango-pyaml/tango/pyaml/controlsystem.py @@ -1,5 +1,4 @@ import copy -import os from pydantic import BaseModel, ConfigDict @@ -14,17 +13,20 @@ class ConfigModel(BaseModel): model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") name: str - tango_host: str + tango_host: str | None = None catalog: Catalog | str | None = None - debug_level: str = None + debug_level: str | None = None + lazy_devices: bool = True + scalar_aggregator: str | None = "tango.pyaml.multi_attribute" + vector_aggregator: str | None = None + timeout_ms: int = 3000 class TangoControlSystem(ControlSystem): def __init__(self, cfg: ConfigModel): super().__init__() self._cfg = cfg - print(f"Creating dummy TangoControlSystem: {cfg.name}") - self.__DEVICES = {} + self.__devices = {} def attach_array(self, devs: list[DeviceAccess]) -> list[DeviceAccess]: return self._attach(devs, True) @@ -36,22 +38,19 @@ def _attach(self, devs: list[DeviceAccess], is_array: bool) -> list[DeviceAccess newDevs = [] for d in devs: if d is not None: - full_name = "//" + self._cfg.tango_host + "/" + d._cfg.attribute - # Include the index (if any) so that two AttributeIndexed devices - # pointing to the same vector attribute but different indices get - # separate entries in the cache. + if self._cfg.tango_host: + full_name = "//" + self._cfg.tango_host + "/" + d._cfg.attribute + else: + full_name = d._cfg.attribute index = getattr(d._cfg, "index", None) cache_key = full_name if index is None else f"{full_name}[{index}]" - if cache_key not in self.__DEVICES: - # Shallow copy the object + if cache_key not in self.__devices: newDev = copy.copy(d) - # Shallow copy the config object - # to allow a new attribute name newDev._cfg = copy.copy(d._cfg) newDev._cfg.attribute = full_name newDev.set_array(is_array) - self.__DEVICES[cache_key] = newDev - newDevs.append(self.__DEVICES[cache_key]) + self.__devices[cache_key] = newDev + newDevs.append(self.__devices[cache_key]) else: newDevs.append(None) return newDevs @@ -60,10 +59,10 @@ def name(self) -> str: return self._cfg.name def scalar_aggregator(self) -> str | None: - return "tango.pyaml.multi_attribute" + return self._cfg.scalar_aggregator def vector_aggregator(self) -> str | None: - return None + return self._cfg.vector_aggregator def __repr__(self): return repr(self._cfg).replace("ConfigModel", self.__class__.__name__) diff --git a/tests/test_catalogs.py b/tests/test_catalogs.py index cbb74702..ba11bb29 100644 --- a/tests/test_catalogs.py +++ b/tests/test_catalogs.py @@ -366,7 +366,7 @@ def test_indexed_catalog_entry_extracts_scalar_from_vector_attribute(install_tes "type": "tango.pyaml.static_catalog_entry", "key": "bpm/SA_HPosition", "device": { - "type": "tango.pyaml.attribute_indexed", + "type": "tango.pyaml.attribute", "attribute": "srdiag/bpm/c01-04/Position", "index": 0, "unit": "mm", @@ -376,7 +376,7 @@ def test_indexed_catalog_entry_extracts_scalar_from_vector_attribute(install_tes "type": "tango.pyaml.static_catalog_entry", "key": "bpm/SA_VPosition", "device": { - "type": "tango.pyaml.attribute_indexed", + "type": "tango.pyaml.attribute", "attribute": "srdiag/bpm/c01-04/Position", "index": 1, "unit": "mm", diff --git a/tests/test_dummy_tango_attributes.py b/tests/test_dummy_tango_attributes.py index 20747e29..ac345481 100644 --- a/tests/test_dummy_tango_attributes.py +++ b/tests/test_dummy_tango_attributes.py @@ -66,5 +66,5 @@ def test_dummy_tango_read_only_attribute_can_be_initialized(install_test_package assert attribute.get() == 0.37 assert attribute.unit() == "1" - with pytest.raises(Exception, match="read only attribute"): + with pytest.raises(Exception, match="not writable"): attribute.set(0.38) From 43656830779383580679a8de383e1036790e5f7f Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Fri, 24 Apr 2026 19:10:25 +0200 Subject: [PATCH 15/19] Evolutions on tests to reflect changes in tango-pyaml --- .../tango-pyaml/tango/pyaml/tango_catalog.py | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 tests/dummy_cs/tango-pyaml/tango/pyaml/tango_catalog.py diff --git a/tests/dummy_cs/tango-pyaml/tango/pyaml/tango_catalog.py b/tests/dummy_cs/tango-pyaml/tango/pyaml/tango_catalog.py new file mode 100644 index 00000000..bc2a9f56 --- /dev/null +++ b/tests/dummy_cs/tango-pyaml/tango/pyaml/tango_catalog.py @@ -0,0 +1,67 @@ +from pydantic import ConfigDict + +from pyaml.common.exception import PyAMLException +from pyaml.configuration.catalog import Catalog, CatalogConfigModel, CatalogResolver +from pyaml.control.deviceaccess import DeviceAccess + +PYAMLCLASS = "TangoCatalog" + + +class ConfigModel(CatalogConfigModel): + model_config = ConfigDict(arbitrary_types_allowed=True, extra="forbid") + + disconnected: bool = False + + +class TangoCatalog(Catalog): + def resolve(self, key: str) -> DeviceAccess: + raise PyAMLException( + f"Tango catalog '{self.get_name()}' must be attached to a TangoControlSystem before resolving key '{key}'" + ) + + def attach_control_system(self, control_system): + from .controlsystem import TangoControlSystem + + if not isinstance(control_system, TangoControlSystem): + raise PyAMLException(f"Tango catalog '{self.get_name()}' can only be attached to TangoControlSystem") + return TangoCatalogResolver(self, control_system) + + +class TangoCatalogResolver(CatalogResolver): + def __init__(self, catalog: TangoCatalog, control_system): + self._catalog = catalog + self._control_system = control_system + self._refs: dict[str, DeviceAccess] = {} + + def resolve(self, key: str) -> DeviceAccess: + if key not in self._refs: + attr_path, index = self._parse_key(key) + from .attribute import Attribute + from .attribute import ConfigModel as AttributeConfigModel + + self._refs[key] = Attribute(AttributeConfigModel(attribute=attr_path, index=index)) + return self._refs[key] + + def _parse_key(self, key: str) -> tuple[str, int | None]: + if not isinstance(key, str): + raise PyAMLException(f"Tango catalog '{self._catalog.get_name()}' expects string keys, got {type(key).__name__}") + if "@" in key: + attr_path, idx_str = key.rsplit("@", 1) + try: + index = int(idx_str) + except ValueError: + raise PyAMLException( + f"Tango catalog '{self._catalog.get_name()}' invalid index '{idx_str}' in key '{key}'." + ) from None + else: + attr_path = key + index = None + + parts = attr_path.split("/") + if len(parts) != 4 or any(part == "" for part in parts): + raise PyAMLException( + f"Tango catalog '{self._catalog.get_name()}' cannot resolve invalid Tango attribute " + f"reference '{key}'. Expected 'domain/family/member/attribute' or " + f"'domain/family/member/attribute@index'." + ) + return attr_path, index From e688aa93aa3ffd4ecd82e200c185e92469ee94aa Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Fri, 24 Apr 2026 19:18:34 +0200 Subject: [PATCH 16/19] Adapting the BESSY2Orbit.yaml to catalogs. --- examples/BESSY2_example/BESSY2Orbit.yaml | 748 ++++++++--------------- 1 file changed, 248 insertions(+), 500 deletions(-) diff --git a/examples/BESSY2_example/BESSY2Orbit.yaml b/examples/BESSY2_example/BESSY2Orbit.yaml index bd6d5174..b61629eb 100644 --- a/examples/BESSY2_example/BESSY2Orbit.yaml +++ b/examples/BESSY2_example/BESSY2Orbit.yaml @@ -12,15 +12,9 @@ controls: name: live catalog: bpm-catalog catalogs: - - type: pyaml_cs_oa.static_catalog + - type: pyaml_cs_oa.epics_catalog name: bpm-catalog - entries: - - type: pyaml_cs_oa.static_catalog_entry - key: ORBITCC:rdPos - device: - type: pyaml_cs_oa.epicsR - read_pvname: ORBITCC:rdPos - unit: nm + prefix: "" data_folder: /data/store arrays: - type: pyaml.arrays.magnet @@ -1640,983 +1634,737 @@ devices: name: BPMZ5D1R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 0 - y_pos_index: 1 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@0" + y_pos: "ORBITCC:rdPos@1" - type: pyaml.bpm.bpm name: BPMZ6D1R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 2 - y_pos_index: 3 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@2" + y_pos: "ORBITCC:rdPos@3" - type: pyaml.bpm.bpm name: BPMZ7D1R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 4 - y_pos_index: 5 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@4" + y_pos: "ORBITCC:rdPos@5" - type: pyaml.bpm.bpm name: BPMZ1T1R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 6 - y_pos_index: 7 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@6" + y_pos: "ORBITCC:rdPos@7" - type: pyaml.bpm.bpm name: BPMZ2T1R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 8 - y_pos_index: 9 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@8" + y_pos: "ORBITCC:rdPos@9" - type: pyaml.bpm.bpm name: BPMZ3T1R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 10 - y_pos_index: 11 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@10" + y_pos: "ORBITCC:rdPos@11" - type: pyaml.bpm.bpm name: BPMZ4T1R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 12 - y_pos_index: 13 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@12" + y_pos: "ORBITCC:rdPos@13" - type: pyaml.bpm.bpm name: BPMZ41T1R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 14 - y_pos_index: 15 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@14" + y_pos: "ORBITCC:rdPos@15" - type: pyaml.bpm.bpm name: BPMZ5T1R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 16 - y_pos_index: 17 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@16" + y_pos: "ORBITCC:rdPos@17" - type: pyaml.bpm.bpm name: BPMZ6T1R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 18 - y_pos_index: 19 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@18" + y_pos: "ORBITCC:rdPos@19" - type: pyaml.bpm.bpm name: BPMZ7T1R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 20 - y_pos_index: 21 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@20" + y_pos: "ORBITCC:rdPos@21" - type: pyaml.bpm.bpm name: BPMZ1D2R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 22 - y_pos_index: 23 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@22" + y_pos: "ORBITCC:rdPos@23" - type: pyaml.bpm.bpm name: BPMZ2D2R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 24 - y_pos_index: 25 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@24" + y_pos: "ORBITCC:rdPos@25" - type: pyaml.bpm.bpm name: BPMZ3D2R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 26 - y_pos_index: 27 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@26" + y_pos: "ORBITCC:rdPos@27" - type: pyaml.bpm.bpm name: BPMZ4D2R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 28 - y_pos_index: 29 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@28" + y_pos: "ORBITCC:rdPos@29" - type: pyaml.bpm.bpm name: BPMZ5D2R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 30 - y_pos_index: 31 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@30" + y_pos: "ORBITCC:rdPos@31" - type: pyaml.bpm.bpm name: BPMZ6D2R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 32 - y_pos_index: 33 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@32" + y_pos: "ORBITCC:rdPos@33" - type: pyaml.bpm.bpm name: BPMZ7D2R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 34 - y_pos_index: 35 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@34" + y_pos: "ORBITCC:rdPos@35" - type: pyaml.bpm.bpm name: BPMZ1T2R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 36 - y_pos_index: 37 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@36" + y_pos: "ORBITCC:rdPos@37" - type: pyaml.bpm.bpm name: BPMZ2T2R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 38 - y_pos_index: 39 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@38" + y_pos: "ORBITCC:rdPos@39" - type: pyaml.bpm.bpm name: BPMZ3T2R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 40 - y_pos_index: 41 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@40" + y_pos: "ORBITCC:rdPos@41" - type: pyaml.bpm.bpm name: BPMZ4T2R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 42 - y_pos_index: 43 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@42" + y_pos: "ORBITCC:rdPos@43" - type: pyaml.bpm.bpm name: BPMZ41T2R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 44 - y_pos_index: 45 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@44" + y_pos: "ORBITCC:rdPos@45" - type: pyaml.bpm.bpm name: BPMZ42T2R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 46 - y_pos_index: 47 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@46" + y_pos: "ORBITCC:rdPos@47" - type: pyaml.bpm.bpm name: BPMZ43T2R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 48 - y_pos_index: 49 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@48" + y_pos: "ORBITCC:rdPos@49" - type: pyaml.bpm.bpm name: BPMZ5T2R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 50 - y_pos_index: 51 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@50" + y_pos: "ORBITCC:rdPos@51" - type: pyaml.bpm.bpm name: BPMZ6T2R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 52 - y_pos_index: 53 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@52" + y_pos: "ORBITCC:rdPos@53" - type: pyaml.bpm.bpm name: BPMZ7T2R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 54 - y_pos_index: 55 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@54" + y_pos: "ORBITCC:rdPos@55" - type: pyaml.bpm.bpm name: BPMZ1D3R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 56 - y_pos_index: 57 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@56" + y_pos: "ORBITCC:rdPos@57" - type: pyaml.bpm.bpm name: BPMZ2D3R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 58 - y_pos_index: 59 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@58" + y_pos: "ORBITCC:rdPos@59" - type: pyaml.bpm.bpm name: BPMZ3D3R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 60 - y_pos_index: 61 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@60" + y_pos: "ORBITCC:rdPos@61" - type: pyaml.bpm.bpm name: BPMZ4D3R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 62 - y_pos_index: 63 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@62" + y_pos: "ORBITCC:rdPos@63" - type: pyaml.bpm.bpm name: BPMZ5D3R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 64 - y_pos_index: 65 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@64" + y_pos: "ORBITCC:rdPos@65" - type: pyaml.bpm.bpm name: BPMZ6D3R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 66 - y_pos_index: 67 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@66" + y_pos: "ORBITCC:rdPos@67" - type: pyaml.bpm.bpm name: BPMZ7D3R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 68 - y_pos_index: 69 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@68" + y_pos: "ORBITCC:rdPos@69" - type: pyaml.bpm.bpm name: BPMZ1T3R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 70 - y_pos_index: 71 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@70" + y_pos: "ORBITCC:rdPos@71" - type: pyaml.bpm.bpm name: BPMZ2T3R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 72 - y_pos_index: 73 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@72" + y_pos: "ORBITCC:rdPos@73" - type: pyaml.bpm.bpm name: BPMZ3T3R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 74 - y_pos_index: 75 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@74" + y_pos: "ORBITCC:rdPos@75" - type: pyaml.bpm.bpm name: BPMZ4T3R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 76 - y_pos_index: 77 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@76" + y_pos: "ORBITCC:rdPos@77" - type: pyaml.bpm.bpm name: BPMZ5T3R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 78 - y_pos_index: 79 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@78" + y_pos: "ORBITCC:rdPos@79" - type: pyaml.bpm.bpm name: BPMZ6T3R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 80 - y_pos_index: 81 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@80" + y_pos: "ORBITCC:rdPos@81" - type: pyaml.bpm.bpm name: BPMZ7T3R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 82 - y_pos_index: 83 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@82" + y_pos: "ORBITCC:rdPos@83" - type: pyaml.bpm.bpm name: BPMZ1D4R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 84 - y_pos_index: 85 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@84" + y_pos: "ORBITCC:rdPos@85" - type: pyaml.bpm.bpm name: BPMZ2D4R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 86 - y_pos_index: 87 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@86" + y_pos: "ORBITCC:rdPos@87" - type: pyaml.bpm.bpm name: BPMZ3D4R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 88 - y_pos_index: 89 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@88" + y_pos: "ORBITCC:rdPos@89" - type: pyaml.bpm.bpm name: BPMZ4D4R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 90 - y_pos_index: 91 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@90" + y_pos: "ORBITCC:rdPos@91" - type: pyaml.bpm.bpm name: BPMZ5D4R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 92 - y_pos_index: 93 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@92" + y_pos: "ORBITCC:rdPos@93" - type: pyaml.bpm.bpm name: BPMZ6D4R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 94 - y_pos_index: 95 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@94" + y_pos: "ORBITCC:rdPos@95" - type: pyaml.bpm.bpm name: BPMZ7D4R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 96 - y_pos_index: 97 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@96" + y_pos: "ORBITCC:rdPos@97" - type: pyaml.bpm.bpm name: BPMZ1T4R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 98 - y_pos_index: 99 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@98" + y_pos: "ORBITCC:rdPos@99" - type: pyaml.bpm.bpm name: BPMZ2T4R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 100 - y_pos_index: 101 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@100" + y_pos: "ORBITCC:rdPos@101" - type: pyaml.bpm.bpm name: BPMZ3T4R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 102 - y_pos_index: 103 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@102" + y_pos: "ORBITCC:rdPos@103" - type: pyaml.bpm.bpm name: BPMZ4T4R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 104 - y_pos_index: 105 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@104" + y_pos: "ORBITCC:rdPos@105" - type: pyaml.bpm.bpm name: BPMZ5T4R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 106 - y_pos_index: 107 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@106" + y_pos: "ORBITCC:rdPos@107" - type: pyaml.bpm.bpm name: BPMZ6T4R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 108 - y_pos_index: 109 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@108" + y_pos: "ORBITCC:rdPos@109" - type: pyaml.bpm.bpm name: BPMZ7T4R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 110 - y_pos_index: 111 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@110" + y_pos: "ORBITCC:rdPos@111" - type: pyaml.bpm.bpm name: BPMZ1D5R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 112 - y_pos_index: 113 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@112" + y_pos: "ORBITCC:rdPos@113" - type: pyaml.bpm.bpm name: BPMZ2D5R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 114 - y_pos_index: 115 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@114" + y_pos: "ORBITCC:rdPos@115" - type: pyaml.bpm.bpm name: BPMZ3D5R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 116 - y_pos_index: 117 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@116" + y_pos: "ORBITCC:rdPos@117" - type: pyaml.bpm.bpm name: BPMZ4D5R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 118 - y_pos_index: 119 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@118" + y_pos: "ORBITCC:rdPos@119" - type: pyaml.bpm.bpm name: BPMZ5D5R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 120 - y_pos_index: 121 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@120" + y_pos: "ORBITCC:rdPos@121" - type: pyaml.bpm.bpm name: BPMZ6D5R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 122 - y_pos_index: 123 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@122" + y_pos: "ORBITCC:rdPos@123" - type: pyaml.bpm.bpm name: BPMZ7D5R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 124 - y_pos_index: 125 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@124" + y_pos: "ORBITCC:rdPos@125" - type: pyaml.bpm.bpm name: BPMZ1T5R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 126 - y_pos_index: 127 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@126" + y_pos: "ORBITCC:rdPos@127" - type: pyaml.bpm.bpm name: BPMZ2T5R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 128 - y_pos_index: 129 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@128" + y_pos: "ORBITCC:rdPos@129" - type: pyaml.bpm.bpm name: BPMZ3T5R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 130 - y_pos_index: 131 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@130" + y_pos: "ORBITCC:rdPos@131" - type: pyaml.bpm.bpm name: BPMZ4T5R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 132 - y_pos_index: 133 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@132" + y_pos: "ORBITCC:rdPos@133" - type: pyaml.bpm.bpm name: BPMZ5T5R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 134 - y_pos_index: 135 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@134" + y_pos: "ORBITCC:rdPos@135" - type: pyaml.bpm.bpm name: BPMZ6T5R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 136 - y_pos_index: 137 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@136" + y_pos: "ORBITCC:rdPos@137" - type: pyaml.bpm.bpm name: BPMZ7T5R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 138 - y_pos_index: 139 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@138" + y_pos: "ORBITCC:rdPos@139" - type: pyaml.bpm.bpm name: BPMZ1D6R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 140 - y_pos_index: 141 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@140" + y_pos: "ORBITCC:rdPos@141" - type: pyaml.bpm.bpm name: BPMZ2D6R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 142 - y_pos_index: 143 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@142" + y_pos: "ORBITCC:rdPos@143" - type: pyaml.bpm.bpm name: BPMZ3D6R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 144 - y_pos_index: 145 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@144" + y_pos: "ORBITCC:rdPos@145" - type: pyaml.bpm.bpm name: BPMZ4D6R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 146 - y_pos_index: 147 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@146" + y_pos: "ORBITCC:rdPos@147" - type: pyaml.bpm.bpm name: BPMZ41D6R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 148 - y_pos_index: 149 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@148" + y_pos: "ORBITCC:rdPos@149" - type: pyaml.bpm.bpm name: BPMZ42D6R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 150 - y_pos_index: 151 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@150" + y_pos: "ORBITCC:rdPos@151" - type: pyaml.bpm.bpm name: BPMZ43D6R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 152 - y_pos_index: 153 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@152" + y_pos: "ORBITCC:rdPos@153" - type: pyaml.bpm.bpm name: BPMZ44D6R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 154 - y_pos_index: 155 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@154" + y_pos: "ORBITCC:rdPos@155" - type: pyaml.bpm.bpm name: BPMZ6D6R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 156 - y_pos_index: 157 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@156" + y_pos: "ORBITCC:rdPos@157" - type: pyaml.bpm.bpm name: BPMZ7D6R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 158 - y_pos_index: 159 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@158" + y_pos: "ORBITCC:rdPos@159" - type: pyaml.bpm.bpm name: BPMZ1T6R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 160 - y_pos_index: 161 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@160" + y_pos: "ORBITCC:rdPos@161" - type: pyaml.bpm.bpm name: BPMZ2T6R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 162 - y_pos_index: 163 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@162" + y_pos: "ORBITCC:rdPos@163" - type: pyaml.bpm.bpm name: BPMZ3T6R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 164 - y_pos_index: 165 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@164" + y_pos: "ORBITCC:rdPos@165" - type: pyaml.bpm.bpm name: BPMZ4T6R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 166 - y_pos_index: 167 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@166" + y_pos: "ORBITCC:rdPos@167" - type: pyaml.bpm.bpm name: BPMZ41T6R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 168 - y_pos_index: 169 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@168" + y_pos: "ORBITCC:rdPos@169" - type: pyaml.bpm.bpm name: BPMZ5T6R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 170 - y_pos_index: 171 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@170" + y_pos: "ORBITCC:rdPos@171" - type: pyaml.bpm.bpm name: BPMZ6T6R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 172 - y_pos_index: 173 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@172" + y_pos: "ORBITCC:rdPos@173" - type: pyaml.bpm.bpm name: BPMZ7T6R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 174 - y_pos_index: 175 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@174" + y_pos: "ORBITCC:rdPos@175" - type: pyaml.bpm.bpm name: BPMZ1D7R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 176 - y_pos_index: 177 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@176" + y_pos: "ORBITCC:rdPos@177" - type: pyaml.bpm.bpm name: BPMZ2D7R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 178 - y_pos_index: 179 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@178" + y_pos: "ORBITCC:rdPos@179" - type: pyaml.bpm.bpm name: BPMZ3D7R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 180 - y_pos_index: 181 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@180" + y_pos: "ORBITCC:rdPos@181" - type: pyaml.bpm.bpm name: BPMZ4D7R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 182 - y_pos_index: 183 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@182" + y_pos: "ORBITCC:rdPos@183" - type: pyaml.bpm.bpm name: BPMZ5D7R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 184 - y_pos_index: 185 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@184" + y_pos: "ORBITCC:rdPos@185" - type: pyaml.bpm.bpm name: BPMZ6D7R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 186 - y_pos_index: 187 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@186" + y_pos: "ORBITCC:rdPos@187" - type: pyaml.bpm.bpm name: BPMZ7D7R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 188 - y_pos_index: 189 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@188" + y_pos: "ORBITCC:rdPos@189" - type: pyaml.bpm.bpm name: BPMZ1T7R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 190 - y_pos_index: 191 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@190" + y_pos: "ORBITCC:rdPos@191" - type: pyaml.bpm.bpm name: BPMZ2T7R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 192 - y_pos_index: 193 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@192" + y_pos: "ORBITCC:rdPos@193" - type: pyaml.bpm.bpm name: BPMZ3T7R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 194 - y_pos_index: 195 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@194" + y_pos: "ORBITCC:rdPos@195" - type: pyaml.bpm.bpm name: BPMZ4T7R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 196 - y_pos_index: 197 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@196" + y_pos: "ORBITCC:rdPos@197" - type: pyaml.bpm.bpm name: BPMZ41T7R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 198 - y_pos_index: 199 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@198" + y_pos: "ORBITCC:rdPos@199" - type: pyaml.bpm.bpm name: BPMZ5T7R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 200 - y_pos_index: 201 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@200" + y_pos: "ORBITCC:rdPos@201" - type: pyaml.bpm.bpm name: BPMZ6T7R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 202 - y_pos_index: 203 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@202" + y_pos: "ORBITCC:rdPos@203" - type: pyaml.bpm.bpm name: BPMZ7T7R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 204 - y_pos_index: 205 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@204" + y_pos: "ORBITCC:rdPos@205" - type: pyaml.bpm.bpm name: BPMZ1D8R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 206 - y_pos_index: 207 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@206" + y_pos: "ORBITCC:rdPos@207" - type: pyaml.bpm.bpm name: BPMZ2D8R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 208 - y_pos_index: 209 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@208" + y_pos: "ORBITCC:rdPos@209" - type: pyaml.bpm.bpm name: BPMZ3D8R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 210 - y_pos_index: 211 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@210" + y_pos: "ORBITCC:rdPos@211" - type: pyaml.bpm.bpm name: BPMZ4D8R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 212 - y_pos_index: 213 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@212" + y_pos: "ORBITCC:rdPos@213" - type: pyaml.bpm.bpm name: BPMZ5D8R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 214 - y_pos_index: 215 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@214" + y_pos: "ORBITCC:rdPos@215" - type: pyaml.bpm.bpm name: BPMZ6D8R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 216 - y_pos_index: 217 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@216" + y_pos: "ORBITCC:rdPos@217" - type: pyaml.bpm.bpm name: BPMZ7D8R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 218 - y_pos_index: 219 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@218" + y_pos: "ORBITCC:rdPos@219" - type: pyaml.bpm.bpm name: BPMZ1T8R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 220 - y_pos_index: 221 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@220" + y_pos: "ORBITCC:rdPos@221" - type: pyaml.bpm.bpm name: BPMZ2T8R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 222 - y_pos_index: 223 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@222" + y_pos: "ORBITCC:rdPos@223" - type: pyaml.bpm.bpm name: BPMZ3T8R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 224 - y_pos_index: 225 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@224" + y_pos: "ORBITCC:rdPos@225" - type: pyaml.bpm.bpm name: BPMZ4T8R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 226 - y_pos_index: 227 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@226" + y_pos: "ORBITCC:rdPos@227" - type: pyaml.bpm.bpm name: BPMZ5T8R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 228 - y_pos_index: 229 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@228" + y_pos: "ORBITCC:rdPos@229" - type: pyaml.bpm.bpm name: BPMZ6T8R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 230 - y_pos_index: 231 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@230" + y_pos: "ORBITCC:rdPos@231" - type: pyaml.bpm.bpm name: BPMZ7T8R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 232 - y_pos_index: 233 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@232" + y_pos: "ORBITCC:rdPos@233" - type: pyaml.bpm.bpm name: BPMZ1D1R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 234 - y_pos_index: 235 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@234" + y_pos: "ORBITCC:rdPos@235" - type: pyaml.bpm.bpm name: BPMZ2D1R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 236 - y_pos_index: 237 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@236" + y_pos: "ORBITCC:rdPos@237" - type: pyaml.bpm.bpm name: BPMZ3D1R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 238 - y_pos_index: 239 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@238" + y_pos: "ORBITCC:rdPos@239" - type: pyaml.bpm.bpm name: BPMZ4D1R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 240 - y_pos_index: 241 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@240" + y_pos: "ORBITCC:rdPos@241" - type: pyaml.bpm.bpm name: BPMZ41D1R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 242 - y_pos_index: 243 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@242" + y_pos: "ORBITCC:rdPos@243" - type: pyaml.bpm.bpm name: BPMZ42D1R model: type: pyaml.bpm.bpm_simple_model - x_pos_index: 244 - y_pos_index: 245 - x_pos: ORBITCC:rdPos - y_pos: ORBITCC:rdPos + x_pos: "ORBITCC:rdPos@244" + y_pos: "ORBITCC:rdPos@245" From 3d9d2868b8c2206632e28a3799159debb6f1adf4 Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Mon, 27 Apr 2026 13:04:03 +0200 Subject: [PATCH 17/19] Rename ControlSystem.resolve_device and resolve_devices to get_device and get_devices, and update internal call sites. --- pyaml/control/controlsystem.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pyaml/control/controlsystem.py b/pyaml/control/controlsystem.py index dc8e2877..00324c5a 100644 --- a/pyaml/control/controlsystem.py +++ b/pyaml/control/controlsystem.py @@ -83,15 +83,15 @@ def vector_aggregator(self) -> str | None: """Returns the module name used for handling aggregator of DeviceVectorAccess""" return None - def resolve_device(self, key: str | None) -> DeviceAccess | None: + def get_device(self, key: str | None) -> DeviceAccess | None: if key is None: return None if self._catalog_resolver is None: raise PyAMLException(f"Control system '{self.name()}' has no catalog configured for key '{key}'") return self._catalog_resolver.resolve(key) - def resolve_devices(self, keys: list[str | None]) -> list[DeviceAccess | None]: - return [self.resolve_device(key) for key in keys] + def get_devices(self, keys: list[str | None]) -> list[DeviceAccess | None]: + return [self.get_device(key) for key in keys] def create_scalar_aggregator(self) -> ScalarAggregator: mod = self.scalar_aggregator() @@ -122,7 +122,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(self.resolve_devices(b.model.get_pos_devices())) + devs = self.attach(self.get_devices(b.model.get_pos_devices())) agg.add_devices(devs) aggh.add_devices(devs[0]) aggv.add_devices(devs[1]) @@ -176,9 +176,9 @@ def fill_device(self, elements: list[Element]): self.add_magnet(m) elif isinstance(e, BPM): - pos_devs = self.attach(self.resolve_devices(e.model.get_pos_devices())) - tilt_devs = self.attach(self.resolve_devices([e.model.get_tilt_device()])) - offset_devs = self.attach(self.resolve_devices(e.model.get_offset_devices())) + pos_devs = self.attach(self.get_devices(e.model.get_pos_devices())) + tilt_devs = self.attach(self.get_devices([e.model.get_tilt_device()])) + offset_devs = self.attach(self.get_devices(e.model.get_offset_devices())) positions = RBpmArray(pos_devs[0], pos_devs[1]) tilt = RWBpmTiltScalar(tilt_devs[0]) offsets = RWBpmOffsetArray(offset_devs[0], offset_devs[1]) From 24040f9e80e09b46e57833a55c2aea1c05b53a64 Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Wed, 29 Apr 2026 11:54:10 +0200 Subject: [PATCH 18/19] Make ControlSystem.get_device(s) return attached devices BPMs now use get_devices() directly instead of attach(get_devices(...)). --- pyaml/control/controlsystem.py | 26 ++++++++++++------- .../tango-pyaml/tango/pyaml/controlsystem.py | 6 ++--- tests/test_bpm_controlsystem.py | 14 ++++++++++ 3 files changed, 33 insertions(+), 13 deletions(-) diff --git a/pyaml/control/controlsystem.py b/pyaml/control/controlsystem.py index 00324c5a..3b569117 100644 --- a/pyaml/control/controlsystem.py +++ b/pyaml/control/controlsystem.py @@ -57,13 +57,13 @@ def get_catalog_config(self) -> Catalog | str | None: return getattr(self._cfg, "catalog", None) @abstractmethod - def attach(self, dev: list[DeviceAccess]) -> list[DeviceAccess]: + def attach(self, dev: list[DeviceAccess | None]) -> list[DeviceAccess | None]: """Return new instances of DeviceAccess objects coming from configuration attached to this CS""" pass @abstractmethod - def attach_array(self, dev: list[DeviceAccess]) -> list[DeviceAccess]: + def attach_array(self, dev: list[DeviceAccess | None]) -> list[DeviceAccess | None]: """Return new instances of DeviceAccess objects coming from configuration attached to this CS""" pass @@ -88,10 +88,16 @@ def get_device(self, key: str | None) -> DeviceAccess | None: return None if self._catalog_resolver is None: raise PyAMLException(f"Control system '{self.name()}' has no catalog configured for key '{key}'") - return self._catalog_resolver.resolve(key) + return self.attach([self._catalog_resolver.resolve(key)])[0] def get_devices(self, keys: list[str | None]) -> list[DeviceAccess | None]: - return [self.get_device(key) for key in keys] + if self._catalog_resolver is None: + missing_keys = [key for key in keys if key is not None] + if missing_keys: + raise PyAMLException(f"Control system '{self.name()}' has no catalog configured for key '{missing_keys[0]}'") + return [None for _ in keys] + devs = [self._catalog_resolver.resolve(key) if key is not None else None for key in keys] + return self.attach(devs) def create_scalar_aggregator(self) -> ScalarAggregator: mod = self.scalar_aggregator() @@ -122,7 +128,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(self.get_devices(b.model.get_pos_devices())) + devs = self.get_devices(b.model.get_pos_devices()) agg.add_devices(devs) aggh.add_devices(devs[0]) aggv.add_devices(devs[1]) @@ -176,9 +182,9 @@ def fill_device(self, elements: list[Element]): self.add_magnet(m) elif isinstance(e, BPM): - pos_devs = self.attach(self.get_devices(e.model.get_pos_devices())) - tilt_devs = self.attach(self.get_devices([e.model.get_tilt_device()])) - offset_devs = self.attach(self.get_devices(e.model.get_offset_devices())) + pos_devs = self.get_devices(e.model.get_pos_devices()) + tilt_devs = self.get_devices([e.model.get_tilt_device()]) + offset_devs = self.get_devices(e.model.get_offset_devices()) positions = RBpmArray(pos_devs[0], pos_devs[1]) tilt = RWBpmTiltScalar(tilt_devs[0]) offsets = RWBpmOffsetArray(offset_devs[0], offset_devs[1]) @@ -231,10 +237,10 @@ class ControlSystemAdapter(ControlSystem): def __init__(self): ControlSystem.__init__(self) - def attach(self, dev: list[DeviceAccess]) -> list[DeviceAccess]: + def attach(self, dev: list[DeviceAccess | None]) -> list[DeviceAccess | None]: pass - def attach_array(self, dev: list[DeviceAccess]) -> list[DeviceAccess]: + def attach_array(self, dev: list[DeviceAccess | None]) -> list[DeviceAccess | None]: pass def name(self) -> str: diff --git a/tests/dummy_cs/tango-pyaml/tango/pyaml/controlsystem.py b/tests/dummy_cs/tango-pyaml/tango/pyaml/controlsystem.py index 4420e24a..53ef3916 100644 --- a/tests/dummy_cs/tango-pyaml/tango/pyaml/controlsystem.py +++ b/tests/dummy_cs/tango-pyaml/tango/pyaml/controlsystem.py @@ -28,13 +28,13 @@ def __init__(self, cfg: ConfigModel): self._cfg = cfg self.__devices = {} - def attach_array(self, devs: list[DeviceAccess]) -> list[DeviceAccess]: + def attach_array(self, devs: list[DeviceAccess | None]) -> list[DeviceAccess | None]: return self._attach(devs, True) - def attach(self, devs: list[DeviceAccess]) -> list[DeviceAccess]: + def attach(self, devs: list[DeviceAccess | None]) -> list[DeviceAccess | None]: return self._attach(devs, False) - def _attach(self, devs: list[DeviceAccess], is_array: bool) -> list[DeviceAccess]: + def _attach(self, devs: list[DeviceAccess | None], is_array: bool) -> list[DeviceAccess | None]: newDevs = [] for d in devs: if d is not None: diff --git a/tests/test_bpm_controlsystem.py b/tests/test_bpm_controlsystem.py index c6aa5187..6e6b4f1d 100644 --- a/tests/test_bpm_controlsystem.py +++ b/tests/test_bpm_controlsystem.py @@ -50,6 +50,20 @@ def test_controlsystem_bpm_position(install_test_package): assert np.allclose(bpm_simple.positions.get(), np.array([0.0, 0.0])) +@pytest.mark.parametrize( + "install_test_package", + [{"name": "tango-pyaml", "path": "tests/dummy_cs/tango-pyaml"}], + indirect=True, +) +def test_controlsystem_get_devices_returns_attached_devices(install_test_package): + sr: Accelerator = Accelerator.load("tests/config/bpms.yaml") + + devs = sr.live.get_devices(["srdiag/bpm/c01-01/SA_HPosition", "srdiag/bpm/c01-01/SA_VPosition"]) + + assert devs[0].name() == "//ebs-simu-3:10000/srdiag/bpm/c01-01/SA_HPosition" + assert devs[1].name() == "//ebs-simu-3:10000/srdiag/bpm/c01-01/SA_VPosition" + + @pytest.mark.parametrize( "install_test_package", [{"name": "tango-pyaml", "path": "tests/dummy_cs/tango-pyaml"}], From 9577ceb96192c503e0484886b7683d877d5b8161 Mon Sep 17 00:00:00 2001 From: guillaumepichon Date: Mon, 4 May 2026 11:31:50 +0200 Subject: [PATCH 19/19] Move catalog resolution responsibility to control systems Remove CatalogResolver from the PyAML runtime contract and keep Catalog as a minimal backend catalog configuration base. ControlSystem.get_device() is now the backend-owned API for resolving opaque string keys or backend ConfigModel references into DeviceAccess objects, while get_devices() remains a simple helper. Update the dummy Tango backend to resolve catalog keys in its control system and adjust catalog tests so they verify catalog configuration is passed through instead of resolved by PyAML. --- pyaml/configuration/__init__.py | 3 +- pyaml/configuration/catalog.py | 85 ++------------- pyaml/control/controlsystem.py | 47 ++++---- .../tango-pyaml/tango/pyaml/controlsystem.py | 26 +++++ .../tango-pyaml/tango/pyaml/tango_catalog.py | 29 +---- tests/test_bpm_controlsystem.py | 16 +++ tests/test_catalogs.py | 103 +----------------- 7 files changed, 89 insertions(+), 220 deletions(-) diff --git a/pyaml/configuration/__init__.py b/pyaml/configuration/__init__.py index bc720dc6..3d3dcb9e 100644 --- a/pyaml/configuration/__init__.py +++ b/pyaml/configuration/__init__.py @@ -2,7 +2,7 @@ PyAML configuration module """ -from .catalog import Catalog, CatalogConfigModel, CatalogResolver +from .catalog import Catalog, CatalogConfigModel from .factory import Factory from .fileloader import get_root_folder, set_root_folder from .manager import ConfigurationManager, UnsupportedConfigurationRootError @@ -12,7 +12,6 @@ "UnsupportedConfigurationRootError", "Catalog", "CatalogConfigModel", - "CatalogResolver", "Factory", "get_root_folder", "set_root_folder", diff --git a/pyaml/configuration/catalog.py b/pyaml/configuration/catalog.py index 6673dbcb..581ff081 100644 --- a/pyaml/configuration/catalog.py +++ b/pyaml/configuration/catalog.py @@ -1,23 +1,7 @@ -""" -catalog.py - -Catalog abstractions used by :mod:`pyaml.configuration`. - -Catalogs provide a stable public API for resolving configuration keys -into concrete :class:`~pyaml.control.deviceaccess.DeviceAccess` -instances at control-system attachment time. -""" - -from abc import ABCMeta, abstractmethod -from typing import TYPE_CHECKING +"""Configuration helpers for backend-provided catalogs.""" from pydantic import BaseModel, ConfigDict -from pyaml.control.deviceaccess import DeviceAccess - -if TYPE_CHECKING: - from pyaml.control.controlsystem import ControlSystem - class CatalogConfigModel(BaseModel): r""" @@ -35,48 +19,19 @@ class CatalogConfigModel(BaseModel): name: str -class CatalogResolver(metaclass=ABCMeta): +class Catalog: r""" - Bound resolver used by a control system to resolve catalog keys. - - A :class:`CatalogResolver` encapsulates the runtime resolution logic - for one attached control-system context. - """ + Minimal base for backend catalog configuration objects. - @abstractmethod - def resolve(self, key: str) -> DeviceAccess: - r""" - Resolve a catalog key into a device access object. - - Parameters - ---------- - key : str - Catalog key to resolve. - - Returns - ------- - DeviceAccess - Resolved device access instance. - """ - raise NotImplementedError - - -class Catalog(CatalogResolver, metaclass=ABCMeta): - r""" - Base abstraction for resolving catalog keys into devices. - - A :class:`Catalog` is attached to a - :class:`~pyaml.control.controlsystem.ControlSystem` and is then used - to resolve string references found in PyAML object configuration - into concrete :class:`~pyaml.control.deviceaccess.DeviceAccess` - instances. + PyAML keeps catalog configuration objects so they can be attached to + backend control-system configuration. PyAML itself does not resolve + catalog keys. Notes ----- - Concrete implementations live in each control-system package - (e.g. ``tango.pyaml.static_catalog``). External projects may - derive from :class:`Catalog` to implement different resolution - strategies while preserving the same public API. + Concrete catalogs live in each control-system package. They may expose + backend-specific resolution APIs, but those APIs are not called by the + PyAML core. """ def __init__(self, cfg: CatalogConfigModel): @@ -92,25 +47,3 @@ def get_name(self) -> str: Catalog identifier. """ return self._cfg.name - - def attach_control_system(self, control_system: "ControlSystem"): - r""" - Create a resolver bound to one control system. - - Parameters - ---------- - control_system : ControlSystem - Control system using this catalog. - - Returns - ------- - CatalogResolver - Resolver instance bound to ``control_system``. - - Notes - ----- - The default implementation returns ``self``. Subclasses may - override this hook to return a dedicated per-control-system - resolver while keeping the catalog object itself shared. - """ - return self diff --git a/pyaml/control/controlsystem.py b/pyaml/control/controlsystem.py index 3b569117..b3d9327a 100644 --- a/pyaml/control/controlsystem.py +++ b/pyaml/control/controlsystem.py @@ -1,12 +1,13 @@ from abc import ABCMeta, abstractmethod +from pydantic import BaseModel + from ..bpm.bpm import BPM from ..common.abstract import RWMapper from ..common.abstract_aggregator import ScalarAggregator from ..common.element import Element from ..common.element_holder import ElementHolder -from ..common.exception import PyAMLException -from ..configuration.catalog import Catalog, CatalogResolver +from ..configuration.catalog import Catalog from ..configuration.factory import Factory from ..configuration.unbound_element import UnboundElement from ..control.abstract_impl import ( @@ -43,18 +44,18 @@ class ControlSystem(ElementHolder, metaclass=ABCMeta): def __init__(self): ElementHolder.__init__(self) - self._catalog: Catalog | None = None - self._catalog_resolver: CatalogResolver | None = None + self._catalog = None def set_catalog(self, catalog: Catalog | None): self._catalog = catalog - self._catalog_resolver = catalog.attach_control_system(self) if catalog is not None else None def get_catalog(self) -> Catalog | None: return self._catalog + @abstractmethod def get_catalog_config(self) -> Catalog | str | None: - return getattr(self._cfg, "catalog", None) + """Return backend catalog configuration for this control system, if any.""" + pass @abstractmethod def attach(self, dev: list[DeviceAccess | None]) -> list[DeviceAccess | None]: @@ -83,21 +84,19 @@ def vector_aggregator(self) -> str | None: """Returns the module name used for handling aggregator of DeviceVectorAccess""" return None - def get_device(self, key: str | None) -> DeviceAccess | None: - if key is None: - return None - if self._catalog_resolver is None: - raise PyAMLException(f"Control system '{self.name()}' has no catalog configured for key '{key}'") - return self.attach([self._catalog_resolver.resolve(key)])[0] - - def get_devices(self, keys: list[str | None]) -> list[DeviceAccess | None]: - if self._catalog_resolver is None: - missing_keys = [key for key in keys if key is not None] - if missing_keys: - raise PyAMLException(f"Control system '{self.name()}' has no catalog configured for key '{missing_keys[0]}'") - return [None for _ in keys] - devs = [self._catalog_resolver.resolve(key) if key is not None else None for key in keys] - return self.attach(devs) + @abstractmethod + def get_device(self, ref: str | BaseModel | None) -> DeviceAccess | None: + """ + Resolve a public device reference for this control system. + + YAML element configuration passes opaque strings. Public Python APIs may + also pass backend ConfigModel instances. Concrete backends own all + catalog lookup, parsing and DeviceAccess construction. + """ + pass + + def get_devices(self, refs: list[str | BaseModel | None]) -> list[DeviceAccess | None]: + return [self.get_device(ref) for ref in refs] def create_scalar_aggregator(self) -> ScalarAggregator: mod = self.scalar_aggregator() @@ -246,8 +245,14 @@ def attach_array(self, dev: list[DeviceAccess | None]) -> list[DeviceAccess | No def name(self) -> str: pass + def get_catalog_config(self) -> Catalog | str | None: + return None + def scalar_aggregator(self) -> str | None: return None def vector_aggregator(self) -> str | None: return None + + def get_device(self, ref: str | BaseModel | None) -> DeviceAccess | None: + pass diff --git a/tests/dummy_cs/tango-pyaml/tango/pyaml/controlsystem.py b/tests/dummy_cs/tango-pyaml/tango/pyaml/controlsystem.py index 53ef3916..46addb25 100644 --- a/tests/dummy_cs/tango-pyaml/tango/pyaml/controlsystem.py +++ b/tests/dummy_cs/tango-pyaml/tango/pyaml/controlsystem.py @@ -1,7 +1,9 @@ import copy +from typing import Any from pydantic import BaseModel, ConfigDict +from pyaml import PyAMLException from pyaml.configuration.catalog import Catalog from pyaml.control.controlsystem import ControlSystem from pyaml.control.deviceaccess import DeviceAccess @@ -34,6 +36,27 @@ def attach_array(self, devs: list[DeviceAccess | None]) -> list[DeviceAccess | N def attach(self, devs: list[DeviceAccess | None]) -> list[DeviceAccess | None]: return self._attach(devs, False) + def get_device(self, ref: str | BaseModel | None) -> DeviceAccess | None: + if ref is None: + return None + + if isinstance(ref, str): + if self._catalog is None: + raise PyAMLException(f"Control system '{self.name()}' has no catalog configured for key '{ref}'") + try: + dev = self._catalog.resolve(ref) + except AttributeError as exc: + raise PyAMLException(f"Control system '{self.name()}' catalog cannot resolve key '{ref}'") from exc + return self.attach([dev])[0] + + from .attribute import Attribute + from .attribute import ConfigModel as AttributeConfigModel + + if isinstance(ref, AttributeConfigModel): + return self.attach([Attribute(ref)])[0] + + raise PyAMLException(f"Control system '{self.name()}' cannot build a device from {type(ref).__name__}") + def _attach(self, devs: list[DeviceAccess | None], is_array: bool) -> list[DeviceAccess | None]: newDevs = [] for d in devs: @@ -58,6 +81,9 @@ def _attach(self, devs: list[DeviceAccess | None], is_array: bool) -> list[Devic def name(self) -> str: return self._cfg.name + def get_catalog_config(self) -> Catalog | str | None: + return self._cfg.catalog + def scalar_aggregator(self) -> str | None: return self._cfg.scalar_aggregator diff --git a/tests/dummy_cs/tango-pyaml/tango/pyaml/tango_catalog.py b/tests/dummy_cs/tango-pyaml/tango/pyaml/tango_catalog.py index bc2a9f56..5d92f25e 100644 --- a/tests/dummy_cs/tango-pyaml/tango/pyaml/tango_catalog.py +++ b/tests/dummy_cs/tango-pyaml/tango/pyaml/tango_catalog.py @@ -1,7 +1,7 @@ from pydantic import ConfigDict from pyaml.common.exception import PyAMLException -from pyaml.configuration.catalog import Catalog, CatalogConfigModel, CatalogResolver +from pyaml.configuration.catalog import Catalog, CatalogConfigModel from pyaml.control.deviceaccess import DeviceAccess PYAMLCLASS = "TangoCatalog" @@ -14,23 +14,8 @@ class ConfigModel(CatalogConfigModel): class TangoCatalog(Catalog): - def resolve(self, key: str) -> DeviceAccess: - raise PyAMLException( - f"Tango catalog '{self.get_name()}' must be attached to a TangoControlSystem before resolving key '{key}'" - ) - - def attach_control_system(self, control_system): - from .controlsystem import TangoControlSystem - - if not isinstance(control_system, TangoControlSystem): - raise PyAMLException(f"Tango catalog '{self.get_name()}' can only be attached to TangoControlSystem") - return TangoCatalogResolver(self, control_system) - - -class TangoCatalogResolver(CatalogResolver): - def __init__(self, catalog: TangoCatalog, control_system): - self._catalog = catalog - self._control_system = control_system + def __init__(self, cfg: ConfigModel): + super().__init__(cfg) self._refs: dict[str, DeviceAccess] = {} def resolve(self, key: str) -> DeviceAccess: @@ -44,15 +29,13 @@ def resolve(self, key: str) -> DeviceAccess: def _parse_key(self, key: str) -> tuple[str, int | None]: if not isinstance(key, str): - raise PyAMLException(f"Tango catalog '{self._catalog.get_name()}' expects string keys, got {type(key).__name__}") + raise PyAMLException(f"Tango catalog '{self.get_name()}' expects string keys, got {type(key).__name__}") if "@" in key: attr_path, idx_str = key.rsplit("@", 1) try: index = int(idx_str) except ValueError: - raise PyAMLException( - f"Tango catalog '{self._catalog.get_name()}' invalid index '{idx_str}' in key '{key}'." - ) from None + raise PyAMLException(f"Tango catalog '{self.get_name()}' invalid index '{idx_str}' in key '{key}'.") from None else: attr_path = key index = None @@ -60,7 +43,7 @@ def _parse_key(self, key: str) -> tuple[str, int | None]: parts = attr_path.split("/") if len(parts) != 4 or any(part == "" for part in parts): raise PyAMLException( - f"Tango catalog '{self._catalog.get_name()}' cannot resolve invalid Tango attribute " + f"Tango catalog '{self.get_name()}' cannot resolve invalid Tango attribute " f"reference '{key}'. Expected 'domain/family/member/attribute' or " f"'domain/family/member/attribute@index'." ) diff --git a/tests/test_bpm_controlsystem.py b/tests/test_bpm_controlsystem.py index 6e6b4f1d..6fd1ea6f 100644 --- a/tests/test_bpm_controlsystem.py +++ b/tests/test_bpm_controlsystem.py @@ -64,6 +64,22 @@ def test_controlsystem_get_devices_returns_attached_devices(install_test_package assert devs[1].name() == "//ebs-simu-3:10000/srdiag/bpm/c01-01/SA_VPosition" +@pytest.mark.parametrize( + "install_test_package", + [{"name": "tango-pyaml", "path": "tests/dummy_cs/tango-pyaml"}], + indirect=True, +) +def test_controlsystem_get_device_accepts_backend_config_model(install_test_package): + from tango.pyaml.attribute import ConfigModel as AttributeConfigModel + + sr: Accelerator = Accelerator.load("tests/config/bpms.yaml") + + dev = sr.live.get_device(AttributeConfigModel(attribute="srdiag/bpm/c01-05/SA_HPosition", unit="mm")) + + assert dev.name() == "//ebs-simu-3:10000/srdiag/bpm/c01-05/SA_HPosition" + assert dev.unit() == "mm" + + @pytest.mark.parametrize( "install_test_package", [{"name": "tango-pyaml", "path": "tests/dummy_cs/tango-pyaml"}], diff --git a/tests/test_catalogs.py b/tests/test_catalogs.py index ba11bb29..a064de6d 100644 --- a/tests/test_catalogs.py +++ b/tests/test_catalogs.py @@ -1,59 +1,8 @@ import numpy as np import pytest -from pyaml import PyAMLConfigException, PyAMLException +from pyaml import PyAMLConfigException from pyaml.accelerator import Accelerator -from pyaml.configuration.catalog import Catalog, CatalogConfigModel, CatalogResolver -from pyaml.control.deviceaccess import DeviceAccess - - -class FakeDeviceAccess(DeviceAccess): - def __init__(self, name: str, unit: str = ""): - self._name = name - self._unit = unit - - def name(self) -> str: - return self._name - - def measure_name(self) -> str: - return self._name - - def set(self, value): - return None - - def set_and_wait(self, value): - return None - - def get(self): - return None - - def readback(self): - return None - - def unit(self) -> str: - return self._unit - - def get_range(self) -> list[float]: - return [] - - def check_device_availability(self) -> bool: - return True - - -class DummyCatalogBinding(CatalogResolver): - def __init__(self, control_system_name: str): - self._control_system_name = control_system_name - - def resolve(self, key: str) -> DeviceAccess: - return FakeDeviceAccess(name=f"{self._control_system_name}:{key}", unit="") - - -class DummyContextCatalog(Catalog): - def attach_control_system(self, control_system): - return DummyCatalogBinding(control_system.name()) - - def resolve(self, key: str) -> DeviceAccess: - raise AssertionError("Shared catalog object must not resolve keys directly") @pytest.mark.parametrize( @@ -144,54 +93,12 @@ def test_inline_catalog_is_supported(install_test_package): [{"name": "tango-pyaml", "path": "tests/dummy_cs/tango-pyaml"}], indirect=True, ) -def test_catalog_is_notified_when_attached_to_control_systems(install_test_package, monkeypatch): - from tango.pyaml.static_catalog import StaticCatalog - - attached = [] - original = StaticCatalog.attach_control_system - - def record_attachment(self, control_system): - attached.append((self.get_name(), control_system.name())) - return original(self, control_system) - - monkeypatch.setattr(StaticCatalog, "attach_control_system", record_attachment) - +def test_catalog_object_is_passed_to_control_systems_without_pyaml_resolver(install_test_package): sr = Accelerator.load("tests/config/catalog_named.yaml") - assert sr.live.get_catalog() is sr.ops.get_catalog() - assert attached == [("device-catalog", "live"), ("device-catalog", "ops")] - - -def test_shared_catalog_can_bind_different_resolvers_per_control_system(): - catalog = DummyContextCatalog(CatalogConfigModel(name="contextual")) - - class DummyControlSystem: - def __init__(self, name: str): - self._name = name - self._catalog = None - self._catalog_resolver = None - - def name(self) -> str: - return self._name - - def set_catalog(self, bound_catalog: Catalog | None): - self._catalog = bound_catalog - self._catalog_resolver = bound_catalog.attach_control_system(self) if bound_catalog is not None else None - - def get_catalog(self): - return self._catalog - - def resolve(self, key: str) -> DeviceAccess: - return self._catalog_resolver.resolve(key) - - live = DummyControlSystem("live") - ops = DummyControlSystem("ops") - live.set_catalog(catalog) - ops.set_catalog(catalog) - - assert live.get_catalog() is ops.get_catalog() is catalog - assert live.resolve("BPM/X").name() == "live:BPM/X" - assert ops.resolve("BPM/X").name() == "ops:BPM/X" + shared_catalog = sr.get_catalog("device-catalog") + assert sr.live.get_catalog() is shared_catalog + assert sr.ops.get_catalog() is shared_catalog @pytest.mark.parametrize(