From 333b003562678d8c6554db17428d7d1c97895a5a Mon Sep 17 00:00:00 2001
From: guillaumepichon <guillaume.pichon@synchrotron-soleil.fr>
Date: Fri, 27 Feb 2026 17:14:08 +0100
Subject: [PATCH 01/11] Now, in arrays, wildcards and regex can be used.

---
 pyaml/common/element_holder.py |  95 +++++++---
 tests/config/EBSOrbit.yaml     | 322 +--------------------------------
 tests/config/sr.yaml           |  21 +--
 3 files changed, 79 insertions(+), 359 deletions(-)

diff --git a/pyaml/common/element_holder.py b/pyaml/common/element_holder.py
index 49a5811db..64b05b323 100644
--- a/pyaml/common/element_holder.py
+++ b/pyaml/common/element_holder.py
@@ -2,6 +2,8 @@
 Module handling element references for simulators and control system
 """
 
+import fnmatch
+import re
 from typing import TYPE_CHECKING
 
 from ..arrays.bpm_array import BPMArray
@@ -33,17 +35,36 @@ class ElementHolder(object):
     simulators and control system
     """
 
+    __MAGNETS: dict[str, Magnet]
+    __CFM_MAGNETS: dict[str, CombinedFunctionMagnet]
+    __SERIALIZED_MAGNETS: dict[str, SerializedMagnets]
+    __BPMS: dict[str, BPM]
+    __RFPLANT: dict[str, RFPlant]
+    __RFTRANSMITTER: dict[str, RFTransmitter]
+    __DIAG: dict[str, Element]
+    __TUNING_TOOLS: dict[str, Element]
+    __ALL: dict[str, Element]
+
     def __init__(self):
         # Device handle
-        self.__MAGNETS: dict = {}
-        self.__CFM_MAGNETS: dict = {}
-        self.__SERIALIZED_MAGNETS: dict = {}
-        self.__BPMS: dict = {}
-        self.__RFPLANT: dict = {}
-        self.__RFTRANSMITTER: dict = {}
-        self.__DIAG: dict = {}
-        self.__TUNING_TOOLS = {}
-        self.__ALL: dict = {}
+        self.__MAGNETS: dict[str, Magnet] = {}
+        self.__CFM_MAGNETS: dict[str, CombinedFunctionMagnet] = {}
+        self.__SERIALIZED_MAGNETS: dict[str, SerializedMagnets] = {}
+        self.__BPMS: dict[str, BPM] = {}
+        self.__RFPLANT: dict[str, RFPlant] = {}
+        self.__RFTRANSMITTER: dict[str, RFTransmitter] = {}
+        self.__DIAG: dict[str, Element] = {}
+        self.__TUNING_TOOLS: dict[str, Element] = {}
+        self.__ALL: dict[str, Element] = {}
+
+        self.__by_class_elements: dict[type, dict] = {
+            Magnet: self.__MAGNETS,
+            CombinedFunctionMagnet: self.__CFM_MAGNETS,
+            SerializedMagnets: self.__SERIALIZED_MAGNETS,
+            BPM: self.__BPMS,
+            RFPlant: self.__RFPLANT,
+            RFTransmitter: self.__RFTRANSMITTER,
+        }
 
         # Array handle
         self.__MAGNET_ARRAYS: dict = {}
@@ -62,24 +83,44 @@ def post_init(self):
     def fill_device(self, elements: list[Element]):
         raise PyAMLException("ElementHolder.fill_device() is not subclassed")
 
+    def find_elements(self, filter: str) -> list[str]:
+        if filter.startswith("re:"):
+            pattern = re.compile(rf"{filter[3:]}")
+            elements = [k for k in self.__ALL.keys() if pattern.fullmatch(k)]
+        elif "*" in filter or "?" in filter:
+            elements = [k for k in self.__ALL.keys() if fnmatch.fnmatch(k, filter)]
+        else:
+            elements = [filter]
+
+        return elements
+
     def fill_array(
-        self, arrayName: str, elementNames: list[str], get_func, constructor, ARR: dict
+        self,
+        array_name: str,
+        element_names: list[str],
+        get_func,
+        constructor,
+        ARR: dict,
     ):
         a = []
-        for name in elementNames:
-            try:
-                m = get_func(name)
-            except Exception as err:
-                raise PyAMLException(
-                    f"{constructor.__name__} {arrayName} : {err} @index {len(a)}"
-                ) from None
-            if m in a:
-                raise PyAMLException(
-                    f"{constructor.__name__} {arrayName} : "
-                    f"duplicate name {name} @index {len(a)}"
-                ) from None
-            a.append(m)
-        ARR[arrayName] = constructor(arrayName, a)
+
+        for name in element_names:
+            names = self.find_elements(name)
+
+            for n in names:
+                try:
+                    m = get_func(n)
+                except Exception as err:
+                    raise PyAMLException(
+                        f"{constructor.__name__} {array_name} : {err} @index {len(a)}"
+                    ) from None
+                if m in a:
+                    raise PyAMLException(
+                        f"{constructor.__name__} {array_name} : "
+                        f"duplicate name {name} @index {len(a)}"
+                    ) from None
+                a.append(m)
+        ARR[array_name] = constructor(array_name, a)
 
     def __add(self, array, element: Element):
         if element.get_name() in self.__ALL:  # Ensure name unicity
@@ -187,7 +228,11 @@ def get_all_serialized_magnets(self) -> list[SerializedMagnets]:
 
     def fill_bpm_array(self, arrayName: str, elementNames: list[str]):
         self.fill_array(
-            arrayName, elementNames, self.get_bpm, BPMArray, self.__BPM_ARRAYS
+            arrayName,
+            elementNames,
+            self.get_bpm,
+            BPMArray,
+            self.__BPM_ARRAYS,
         )
 
     def get_bpm(self, name: str) -> Element:
diff --git a/tests/config/EBSOrbit.yaml b/tests/config/EBSOrbit.yaml
index ccc6ed36b..131aed4f3 100644
--- a/tests/config/EBSOrbit.yaml
+++ b/tests/config/EBSOrbit.yaml
@@ -888,326 +888,8 @@ arrays:
   - type: pyaml.arrays.bpm
     name: BPM
     elements:
-      - BPM_C04-01
-      - BPM_C04-02
-      - BPM_C04-03
-      - BPM_C04-04
-      - BPM_C04-05
-      - BPM_C04-06
-      - BPM_C04-07
-      - BPM_C04-08
-      - BPM_C04-09
-      - BPM_C04-10
-      - BPM_C05-01
-      - BPM_C05-02
-      - BPM_C05-03
-      - BPM_C05-04
-      - BPM_C05-05
-      - BPM_C05-06
-      - BPM_C05-07
-      - BPM_C05-08
-      - BPM_C05-09
-      - BPM_C05-10
-      - BPM_C06-01
-      - BPM_C06-02
-      - BPM_C06-03
-      - BPM_C06-04
-      - BPM_C06-05
-      - BPM_C06-06
-      - BPM_C06-07
-      - BPM_C06-08
-      - BPM_C06-09
-      - BPM_C06-10
-      - BPM_C07-01
-      - BPM_C07-02
-      - BPM_C07-03
-      - BPM_C07-04
-      - BPM_C07-05
-      - BPM_C07-06
-      - BPM_C07-07
-      - BPM_C07-08
-      - BPM_C07-09
-      - BPM_C07-10
-      - BPM_C08-01
-      - BPM_C08-02
-      - BPM_C08-03
-      - BPM_C08-04
-      - BPM_C08-05
-      - BPM_C08-06
-      - BPM_C08-07
-      - BPM_C08-08
-      - BPM_C08-09
-      - BPM_C08-10
-      - BPM_C09-01
-      - BPM_C09-02
-      - BPM_C09-03
-      - BPM_C09-04
-      - BPM_C09-05
-      - BPM_C09-06
-      - BPM_C09-07
-      - BPM_C09-08
-      - BPM_C09-09
-      - BPM_C09-10
-      - BPM_C10-01
-      - BPM_C10-02
-      - BPM_C10-03
-      - BPM_C10-04
-      - BPM_C10-05
-      - BPM_C10-06
-      - BPM_C10-07
-      - BPM_C10-08
-      - BPM_C10-09
-      - BPM_C10-10
-      - BPM_C11-01
-      - BPM_C11-02
-      - BPM_C11-03
-      - BPM_C11-04
-      - BPM_C11-05
-      - BPM_C11-06
-      - BPM_C11-07
-      - BPM_C11-08
-      - BPM_C11-09
-      - BPM_C11-10
-      - BPM_C12-01
-      - BPM_C12-02
-      - BPM_C12-03
-      - BPM_C12-04
-      - BPM_C12-05
-      - BPM_C12-06
-      - BPM_C12-07
-      - BPM_C12-08
-      - BPM_C12-09
-      - BPM_C12-10
-      - BPM_C13-01
-      - BPM_C13-02
-      - BPM_C13-03
-      - BPM_C13-04
-      - BPM_C13-05
-      - BPM_C13-06
-      - BPM_C13-07
-      - BPM_C13-08
-      - BPM_C13-09
-      - BPM_C13-10
-      - BPM_C14-01
-      - BPM_C14-02
-      - BPM_C14-03
-      - BPM_C14-04
-      - BPM_C14-05
-      - BPM_C14-06
-      - BPM_C14-07
-      - BPM_C14-08
-      - BPM_C14-09
-      - BPM_C14-10
-      - BPM_C15-01
-      - BPM_C15-02
-      - BPM_C15-03
-      - BPM_C15-04
-      - BPM_C15-05
-      - BPM_C15-06
-      - BPM_C15-07
-      - BPM_C15-08
-      - BPM_C15-09
-      - BPM_C15-10
-      - BPM_C16-01
-      - BPM_C16-02
-      - BPM_C16-03
-      - BPM_C16-04
-      - BPM_C16-05
-      - BPM_C16-06
-      - BPM_C16-07
-      - BPM_C16-08
-      - BPM_C16-09
-      - BPM_C16-10
-      - BPM_C17-01
-      - BPM_C17-02
-      - BPM_C17-03
-      - BPM_C17-04
-      - BPM_C17-05
-      - BPM_C17-06
-      - BPM_C17-07
-      - BPM_C17-08
-      - BPM_C17-09
-      - BPM_C17-10
-      - BPM_C18-01
-      - BPM_C18-02
-      - BPM_C18-03
-      - BPM_C18-04
-      - BPM_C18-05
-      - BPM_C18-06
-      - BPM_C18-07
-      - BPM_C18-08
-      - BPM_C18-09
-      - BPM_C18-10
-      - BPM_C19-01
-      - BPM_C19-02
-      - BPM_C19-03
-      - BPM_C19-04
-      - BPM_C19-05
-      - BPM_C19-06
-      - BPM_C19-07
-      - BPM_C19-08
-      - BPM_C19-09
-      - BPM_C19-10
-      - BPM_C20-01
-      - BPM_C20-02
-      - BPM_C20-03
-      - BPM_C20-04
-      - BPM_C20-05
-      - BPM_C20-06
-      - BPM_C20-07
-      - BPM_C20-08
-      - BPM_C20-09
-      - BPM_C20-10
-      - BPM_C21-01
-      - BPM_C21-02
-      - BPM_C21-03
-      - BPM_C21-04
-      - BPM_C21-05
-      - BPM_C21-06
-      - BPM_C21-07
-      - BPM_C21-08
-      - BPM_C21-09
-      - BPM_C21-10
-      - BPM_C22-01
-      - BPM_C22-02
-      - BPM_C22-03
-      - BPM_C22-04
-      - BPM_C22-05
-      - BPM_C22-06
-      - BPM_C22-07
-      - BPM_C22-08
-      - BPM_C22-09
-      - BPM_C22-10
-      - BPM_C23-01
-      - BPM_C23-02
-      - BPM_C23-03
-      - BPM_C23-04
-      - BPM_C23-05
-      - BPM_C23-06
-      - BPM_C23-07
-      - BPM_C23-08
-      - BPM_C23-09
-      - BPM_C23-10
-      - BPM_C24-01
-      - BPM_C24-02
-      - BPM_C24-03
-      - BPM_C24-04
-      - BPM_C24-05
-      - BPM_C24-06
-      - BPM_C24-07
-      - BPM_C24-08
-      - BPM_C24-09
-      - BPM_C24-10
-      - BPM_C25-01
-      - BPM_C25-02
-      - BPM_C25-03
-      - BPM_C25-04
-      - BPM_C25-05
-      - BPM_C25-06
-      - BPM_C25-07
-      - BPM_C25-08
-      - BPM_C25-09
-      - BPM_C25-10
-      - BPM_C26-01
-      - BPM_C26-02
-      - BPM_C26-03
-      - BPM_C26-04
-      - BPM_C26-05
-      - BPM_C26-06
-      - BPM_C26-07
-      - BPM_C26-08
-      - BPM_C26-09
-      - BPM_C26-10
-      - BPM_C27-01
-      - BPM_C27-02
-      - BPM_C27-03
-      - BPM_C27-04
-      - BPM_C27-05
-      - BPM_C27-06
-      - BPM_C27-07
-      - BPM_C27-08
-      - BPM_C27-09
-      - BPM_C27-10
-      - BPM_C28-01
-      - BPM_C28-02
-      - BPM_C28-03
-      - BPM_C28-04
-      - BPM_C28-05
-      - BPM_C28-06
-      - BPM_C28-07
-      - BPM_C28-08
-      - BPM_C28-09
-      - BPM_C28-10
-      - BPM_C29-01
-      - BPM_C29-02
-      - BPM_C29-03
-      - BPM_C29-04
-      - BPM_C29-05
-      - BPM_C29-06
-      - BPM_C29-07
-      - BPM_C29-08
-      - BPM_C29-09
-      - BPM_C29-10
-      - BPM_C30-01
-      - BPM_C30-02
-      - BPM_C30-03
-      - BPM_C30-04
-      - BPM_C30-05
-      - BPM_C30-06
-      - BPM_C30-07
-      - BPM_C30-08
-      - BPM_C30-09
-      - BPM_C30-10
-      - BPM_C31-01
-      - BPM_C31-02
-      - BPM_C31-03
-      - BPM_C31-04
-      - BPM_C31-05
-      - BPM_C31-06
-      - BPM_C31-07
-      - BPM_C31-08
-      - BPM_C31-09
-      - BPM_C31-10
-      - BPM_C32-01
-      - BPM_C32-02
-      - BPM_C32-03
-      - BPM_C32-04
-      - BPM_C32-05
-      - BPM_C32-06
-      - BPM_C32-07
-      - BPM_C32-08
-      - BPM_C32-09
-      - BPM_C32-10
-      - BPM_C01-01
-      - BPM_C01-02
-      - BPM_C01-03
-      - BPM_C01-04
-      - BPM_C01-05
-      - BPM_C01-06
-      - BPM_C01-07
-      - BPM_C01-08
-      - BPM_C01-09
-      - BPM_C01-10
-      - BPM_C02-01
-      - BPM_C02-02
-      - BPM_C02-03
-      - BPM_C02-04
-      - BPM_C02-05
-      - BPM_C02-06
-      - BPM_C02-07
-      - BPM_C02-08
-      - BPM_C02-09
-      - BPM_C02-10
-      - BPM_C03-01
-      - BPM_C03-02
-      - BPM_C03-03
-      - BPM_C03-04
-      - BPM_C03-05
-      - BPM_C03-06
-      - BPM_C03-07
-      - BPM_C03-08
-      - BPM_C03-09
-      - BPM_C03-10
+      - re:^BPM_C(0[4-9]|1[0-9]|2[0-9]|3[0-2]).*$
+      - re:^BPM_C(0[1-3]).*$
 devices:
 - type: pyaml.diagnostics.tune_monitor
   name: BETATRON_TUNE
diff --git a/tests/config/sr.yaml b/tests/config/sr.yaml
index 92d4a84c9..b223852e5 100644
--- a/tests/config/sr.yaml
+++ b/tests/config/sr.yaml
@@ -15,35 +15,28 @@ arrays:
   - type: pyaml.arrays.magnet
     name: HCORR
     elements:
-      - SH1A-C01-H
-      - SH1A-C02-H
+      - SH1A-C0?-H
   - type: pyaml.arrays.magnet
     name: VCORR
     elements:
-      - SH1A-C01-V
-      - SH1A-C02-V
+      - SH1A-C0?-V
   - type: pyaml.arrays.magnet
     name: HVCORR
     elements:
-      - SH1A-C01-H
-      - SH1A-C02-H
-      - SH1A-C01-V
-      - SH1A-C02-V
+      - re:^SH1A-C0[12]-H$
+      - re:^SH1A-C0[12]-V$
   - type: pyaml.arrays.cfm_magnet
     name: CFM
     elements:
-      - SH1A-C01
-      - SH1A-C02
+      - SH1A-C0?
   - type: pyaml.arrays.bpm
     name: BPMS
     elements:
-      - BPM_C04-01
-      - BPM_C04-02
+      - BPM_C04-*
   - type: pyaml.arrays.element
     name: ElArray
     elements:
-      - BPM_C04-01
-      - BPM_C04-02
+      - re:^BPM_C04-0[12]$
       - SH1A-C01-V
       - SH1A-C02-H
 devices:

From 0fd2a8755b3368972dc542cdbcdfacbd7327f6f7 Mon Sep 17 00:00:00 2001
From: guillaumepichon <guillaume.pichon@synchrotron-soleil.fr>
Date: Tue, 3 Mar 2026 15:00:19 +0100
Subject: [PATCH 02/11] Python-based configuration macros using the key
 `elements_code`

---
 pyaml/configuration/fileloader.py |   92 +-
 tests/config/EBSOrbit.yaml        | 3864 +----------------------------
 tests/test_load_conf_with_code.py |   13 +
 3 files changed, 115 insertions(+), 3854 deletions(-)
 create mode 100644 tests/test_load_conf_with_code.py

diff --git a/pyaml/configuration/fileloader.py b/pyaml/configuration/fileloader.py
index 6df60c1d0..7b8ee01b5 100644
--- a/pyaml/configuration/fileloader.py
+++ b/pyaml/configuration/fileloader.py
@@ -4,6 +4,7 @@
 import json
 import logging
 import os
+import textwrap
 from pathlib import Path
 from typing import TYPE_CHECKING, Union
 
@@ -12,8 +13,6 @@
 from yaml.constructor import ConstructorError
 from yaml.loader import SafeLoader
 
-from pyaml.configuration.factory import Factory
-
 from .. import PyAMLException
 
 if TYPE_CHECKING:
@@ -24,6 +23,7 @@
 
 accepted_suffixes = [".yaml", ".yml", ".json"]
 FILE_PREFIX = "file:"
+elements_code_tag = "elements_code"
 
 ROOT = {"path": Path.cwd().resolve()}
 
@@ -88,6 +88,44 @@ def hasToLoad(value):
     )
 
 
+# Expand condition for dynamic code execution
+def has_to_execute(key: str, value):
+    """
+    Return True if the current dict entry corresponds to executable code.
+
+    The execution is triggered only when:
+    - the key is exactly "elements_code"
+    - the value is a string (code snippet)
+
+    This keeps behavior explicit and avoids accidental execution.
+    """
+    return key == elements_code_tag and isinstance(value, str)
+
+
+def execute_configuration_code(code: str):
+    clean_code = textwrap.dedent(code).strip()
+    wrapped = "def _f():\n" + textwrap.indent(clean_code.strip(), "    ")
+    compiled = compile(wrapped, "<string>", "exec")
+
+    ns = {}
+    exec(compiled, ns)
+
+    return ns["_f"]()
+
+
+def extract_location(d: dict, key: str) -> str:
+    location = d.pop("__location__", None)
+    field_locations = d.pop("__fieldlocations__", None)
+    location_str = ""
+    if location:
+        file, line, col = location
+        if field_locations and key in field_locations:
+            location = field_locations[key]
+            file, line, col = location
+        location_str = f" in {file} at line {line}, column {col}"
+    return location_str
+
+
 # Loader base class (nested files expansion)
 class Loader:
     def __init__(self, filename: str, parent_path_stack: list[Path]):
@@ -112,18 +150,23 @@ def expand_dict(self, d: dict):
                         d[key] = str(get_root_folder() / Path(stripped_value))
                     else:
                         d[key] = load(value, self.files_stack, self.use_fast_loader)
+                elif has_to_execute(key, value):
+                    exec_result = execute_configuration_code(value)
+                    d.pop(key, None)
+                    if isinstance(exec_result, dict):
+                        self.expand(exec_result)
+                        d.update(exec_result)
+                    else:
+                        location_str = extract_location(d, key)
+                        raise PyAMLException(
+                            f"The type returned by an elements_code"
+                            f" block was of type {type(exec_result)}"
+                            f" while a dict was expected{location_str}"
+                        )
                 else:
                     self.expand(value)
             except PyAMLConfigCyclingException as pyaml_ex:
-                location = d.pop("__location__", None)
-                field_locations = d.pop("__fieldlocations__", None)
-                location_str = ""
-                if location:
-                    file, line, col = location
-                    if field_locations and key in field_locations:
-                        location = field_locations[key]
-                        file, line, col = location
-                    location_str = f" in {file} at line {line}, column {col}"
+                location_str = extract_location(d, key)
                 raise PyAMLException(
                     "Circular file inclusion "
                     f"of {pyaml_ex.error_filename}{location_str}"
@@ -131,12 +174,37 @@ def expand_dict(self, d: dict):
 
     # Recursively expand a list
     def expand_list(self, l: list):
-        for idx, value in enumerate(l):
+        idx = 0
+        while idx < len(l):
+            value = l[idx]
+
+            # Special case: list item is a pure code-macro dict {"elements_code": "..."}
+            if isinstance(value, dict) and elements_code_tag in value.keys():
+                result = execute_configuration_code(value[elements_code_tag])
+
+                if isinstance(result, list):
+                    # Replace the macro item with all generated items
+                    l[idx : idx + 1] = result
+                    # Expand each inserted item
+                    for j in range(idx, idx + len(result)):
+                        self.expand(l[j])
+                    idx += len(result)
+                else:
+                    # It should be a dict, but we accept everything as a custom
+                    # strategy can be used.
+                    l[idx] = result
+                    self.expand(l[idx])
+                    idx += 1
+                continue
+
+            # Default behavior
             if hasToLoad(value):
                 l[idx] = load(value, self.files_stack)
             else:
                 self.expand(value)
 
+            idx += 1
+
     # Recursively expand an object
     def expand(self, obj: Union[dict, list]):
         if isinstance(obj, dict):
diff --git a/tests/config/EBSOrbit.yaml b/tests/config/EBSOrbit.yaml
index 131aed4f3..255e09d72 100644
--- a/tests/config/EBSOrbit.yaml
+++ b/tests/config/EBSOrbit.yaml
@@ -888,8 +888,7 @@ arrays:
   - type: pyaml.arrays.bpm
     name: BPM
     elements:
-      - re:^BPM_C(0[4-9]|1[0-9]|2[0-9]|3[0-2]).*$
-      - re:^BPM_C(0[1-3]).*$
+      - BPM*
 devices:
 - type: pyaml.diagnostics.tune_monitor
   name: BETATRON_TUNE
@@ -8537,3843 +8536,24 @@ devices:
       - type: tango.pyaml.attribute
         attribute: srmag/ps-corr-sh3/c03-e-ch6/current
         unit: A
-- type: pyaml.bpm.bpm
-  name: BPM_C04-01
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c04-01/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c04-01/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C04-02
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c04-02/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c04-02/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C04-03
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c04-03/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c04-03/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C04-04
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c04-04/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c04-04/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C04-05
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c04-05/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c04-05/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C04-06
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c04-06/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c04-06/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C04-07
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c04-07/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c04-07/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C04-08
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c04-08/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c04-08/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C04-09
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c04-09/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c04-09/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C04-10
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c04-10/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c04-10/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C05-01
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c05-01/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c05-01/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C05-02
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c05-02/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c05-02/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C05-03
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c05-03/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c05-03/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C05-04
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c05-04/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c05-04/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C05-05
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c05-05/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c05-05/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C05-06
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c05-06/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c05-06/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C05-07
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c05-07/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c05-07/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C05-08
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c05-08/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c05-08/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C05-09
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c05-09/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c05-09/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C05-10
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c05-10/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c05-10/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C06-01
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c06-01/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c06-01/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C06-02
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c06-02/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c06-02/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C06-03
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c06-03/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c06-03/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C06-04
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c06-04/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c06-04/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C06-05
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c06-05/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c06-05/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C06-06
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c06-06/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c06-06/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C06-07
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c06-07/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c06-07/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C06-08
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c06-08/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c06-08/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C06-09
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c06-09/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c06-09/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C06-10
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c06-10/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c06-10/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C07-01
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c07-01/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c07-01/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C07-02
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c07-02/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c07-02/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C07-03
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c07-03/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c07-03/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C07-04
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c07-04/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c07-04/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C07-05
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c07-05/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c07-05/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C07-06
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c07-06/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c07-06/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C07-07
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c07-07/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c07-07/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C07-08
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c07-08/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c07-08/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C07-09
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c07-09/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c07-09/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C07-10
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c07-10/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c07-10/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C08-01
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c08-01/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c08-01/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C08-02
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c08-02/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c08-02/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C08-03
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c08-03/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c08-03/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C08-04
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c08-04/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c08-04/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C08-05
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c08-05/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c08-05/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C08-06
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c08-06/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c08-06/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C08-07
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c08-07/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c08-07/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C08-08
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c08-08/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c08-08/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C08-09
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c08-09/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c08-09/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C08-10
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c08-10/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c08-10/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C09-01
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c09-01/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c09-01/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C09-02
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c09-02/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c09-02/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C09-03
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c09-03/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c09-03/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C09-04
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c09-04/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c09-04/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C09-05
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c09-05/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c09-05/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C09-06
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c09-06/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c09-06/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C09-07
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c09-07/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c09-07/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C09-08
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c09-08/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c09-08/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C09-09
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c09-09/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c09-09/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C09-10
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c09-10/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c09-10/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C10-01
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c10-01/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c10-01/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C10-02
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c10-02/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c10-02/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C10-03
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c10-03/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c10-03/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C10-04
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c10-04/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c10-04/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C10-05
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c10-05/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c10-05/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C10-06
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c10-06/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c10-06/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C10-07
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c10-07/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c10-07/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C10-08
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c10-08/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c10-08/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C10-09
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c10-09/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c10-09/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C10-10
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c10-10/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c10-10/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C11-01
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c11-01/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c11-01/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C11-02
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c11-02/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c11-02/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C11-03
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c11-03/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c11-03/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C11-04
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c11-04/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c11-04/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C11-05
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c11-05/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c11-05/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C11-06
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c11-06/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c11-06/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C11-07
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c11-07/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c11-07/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C11-08
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c11-08/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c11-08/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C11-09
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c11-09/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c11-09/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C11-10
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c11-10/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c11-10/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C12-01
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c12-01/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c12-01/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C12-02
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c12-02/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c12-02/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C12-03
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c12-03/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c12-03/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C12-04
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c12-04/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c12-04/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C12-05
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c12-05/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c12-05/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C12-06
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c12-06/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c12-06/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C12-07
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c12-07/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c12-07/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C12-08
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c12-08/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c12-08/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C12-09
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c12-09/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c12-09/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C12-10
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c12-10/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c12-10/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C13-01
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c13-01/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c13-01/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C13-02
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c13-02/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c13-02/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C13-03
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c13-03/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c13-03/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C13-04
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c13-04/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c13-04/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C13-05
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c13-05/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c13-05/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C13-06
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c13-06/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c13-06/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C13-07
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c13-07/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c13-07/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C13-08
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c13-08/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c13-08/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C13-09
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c13-09/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c13-09/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C13-10
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c13-10/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c13-10/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C14-01
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c14-01/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c14-01/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C14-02
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c14-02/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c14-02/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C14-03
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c14-03/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c14-03/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C14-04
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c14-04/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c14-04/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C14-05
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c14-05/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c14-05/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C14-06
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c14-06/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c14-06/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C14-07
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c14-07/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c14-07/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C14-08
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c14-08/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c14-08/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C14-09
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c14-09/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c14-09/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C14-10
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c14-10/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c14-10/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C15-01
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c15-01/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c15-01/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C15-02
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c15-02/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c15-02/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C15-03
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c15-03/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c15-03/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C15-04
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c15-04/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c15-04/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C15-05
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c15-05/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c15-05/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C15-06
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c15-06/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c15-06/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C15-07
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c15-07/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c15-07/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C15-08
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c15-08/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c15-08/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C15-09
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c15-09/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c15-09/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C15-10
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c15-10/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c15-10/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C16-01
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c16-01/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c16-01/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C16-02
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c16-02/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c16-02/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C16-03
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c16-03/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c16-03/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C16-04
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c16-04/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c16-04/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C16-05
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c16-05/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c16-05/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C16-06
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c16-06/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c16-06/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C16-07
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c16-07/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c16-07/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C16-08
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c16-08/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c16-08/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C16-09
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c16-09/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c16-09/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C16-10
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c16-10/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c16-10/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C17-01
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c17-01/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c17-01/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C17-02
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c17-02/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c17-02/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C17-03
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c17-03/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c17-03/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C17-04
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c17-04/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c17-04/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C17-05
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c17-05/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c17-05/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C17-06
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c17-06/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c17-06/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C17-07
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c17-07/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c17-07/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C17-08
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c17-08/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c17-08/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C17-09
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c17-09/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c17-09/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C17-10
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c17-10/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c17-10/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C18-01
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c18-01/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c18-01/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C18-02
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c18-02/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c18-02/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C18-03
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c18-03/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c18-03/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C18-04
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c18-04/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c18-04/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C18-05
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c18-05/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c18-05/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C18-06
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c18-06/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c18-06/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C18-07
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c18-07/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c18-07/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C18-08
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c18-08/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c18-08/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C18-09
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c18-09/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c18-09/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C18-10
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c18-10/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c18-10/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C19-01
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c19-01/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c19-01/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C19-02
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c19-02/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c19-02/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C19-03
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c19-03/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c19-03/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C19-04
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c19-04/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c19-04/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C19-05
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c19-05/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c19-05/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C19-06
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c19-06/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c19-06/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C19-07
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c19-07/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c19-07/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C19-08
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c19-08/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c19-08/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C19-09
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c19-09/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c19-09/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C19-10
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c19-10/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c19-10/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C20-01
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c20-01/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c20-01/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C20-02
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c20-02/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c20-02/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C20-03
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c20-03/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c20-03/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C20-04
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c20-04/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c20-04/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C20-05
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c20-05/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c20-05/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C20-06
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c20-06/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c20-06/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C20-07
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c20-07/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c20-07/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C20-08
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c20-08/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c20-08/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C20-09
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c20-09/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c20-09/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C20-10
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c20-10/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c20-10/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C21-01
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c21-01/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c21-01/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C21-02
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c21-02/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c21-02/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C21-03
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c21-03/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c21-03/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C21-04
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c21-04/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c21-04/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C21-05
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c21-05/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c21-05/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C21-06
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c21-06/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c21-06/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C21-07
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c21-07/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c21-07/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C21-08
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c21-08/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c21-08/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C21-09
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c21-09/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c21-09/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C21-10
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c21-10/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c21-10/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C22-01
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c22-01/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c22-01/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C22-02
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c22-02/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c22-02/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C22-03
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c22-03/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c22-03/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C22-04
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c22-04/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c22-04/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C22-05
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c22-05/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c22-05/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C22-06
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c22-06/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c22-06/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C22-07
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c22-07/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c22-07/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C22-08
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c22-08/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c22-08/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C22-09
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c22-09/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c22-09/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C22-10
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c22-10/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c22-10/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C23-01
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c23-01/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c23-01/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C23-02
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c23-02/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c23-02/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C23-03
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c23-03/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c23-03/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C23-04
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c23-04/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c23-04/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C23-05
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c23-05/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c23-05/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C23-06
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c23-06/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c23-06/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C23-07
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c23-07/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c23-07/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C23-08
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c23-08/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c23-08/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C23-09
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c23-09/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c23-09/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C23-10
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c23-10/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c23-10/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C24-01
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c24-01/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c24-01/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C24-02
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c24-02/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c24-02/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C24-03
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c24-03/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c24-03/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C24-04
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c24-04/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c24-04/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C24-05
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c24-05/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c24-05/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C24-06
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c24-06/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c24-06/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C24-07
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c24-07/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c24-07/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C24-08
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c24-08/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c24-08/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C24-09
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c24-09/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c24-09/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C24-10
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c24-10/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c24-10/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C25-01
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c25-01/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c25-01/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C25-02
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c25-02/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c25-02/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C25-03
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c25-03/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c25-03/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C25-04
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c25-04/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c25-04/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C25-05
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c25-05/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c25-05/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C25-06
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c25-06/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c25-06/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C25-07
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c25-07/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c25-07/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C25-08
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c25-08/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c25-08/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C25-09
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c25-09/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c25-09/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C25-10
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c25-10/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c25-10/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C26-01
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c26-01/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c26-01/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C26-02
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c26-02/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c26-02/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C26-03
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c26-03/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c26-03/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C26-04
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c26-04/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c26-04/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C26-05
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c26-05/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c26-05/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C26-06
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c26-06/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c26-06/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C26-07
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c26-07/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c26-07/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C26-08
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c26-08/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c26-08/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C26-09
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c26-09/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c26-09/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C26-10
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c26-10/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c26-10/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C27-01
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c27-01/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c27-01/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C27-02
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c27-02/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c27-02/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C27-03
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c27-03/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c27-03/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C27-04
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c27-04/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c27-04/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C27-05
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c27-05/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c27-05/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C27-06
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c27-06/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c27-06/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C27-07
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c27-07/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c27-07/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C27-08
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c27-08/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c27-08/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C27-09
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c27-09/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c27-09/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C27-10
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c27-10/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c27-10/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C28-01
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c28-01/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c28-01/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C28-02
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c28-02/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c28-02/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C28-03
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c28-03/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c28-03/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C28-04
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c28-04/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c28-04/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C28-05
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c28-05/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c28-05/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C28-06
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c28-06/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c28-06/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C28-07
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c28-07/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c28-07/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C28-08
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c28-08/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c28-08/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C28-09
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c28-09/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c28-09/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C28-10
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c28-10/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c28-10/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C29-01
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c29-01/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c29-01/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C29-02
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c29-02/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c29-02/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C29-03
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c29-03/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c29-03/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C29-04
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c29-04/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c29-04/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C29-05
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c29-05/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c29-05/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C29-06
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c29-06/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c29-06/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C29-07
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c29-07/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c29-07/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C29-08
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c29-08/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c29-08/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C29-09
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c29-09/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c29-09/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C29-10
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c29-10/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c29-10/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C30-01
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c30-01/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c30-01/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C30-02
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c30-02/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c30-02/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C30-03
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c30-03/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c30-03/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C30-04
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c30-04/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c30-04/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C30-05
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c30-05/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c30-05/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C30-06
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c30-06/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c30-06/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C30-07
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c30-07/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c30-07/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C30-08
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c30-08/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c30-08/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C30-09
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c30-09/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c30-09/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C30-10
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c30-10/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c30-10/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C31-01
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c31-01/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c31-01/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C31-02
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c31-02/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c31-02/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C31-03
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c31-03/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c31-03/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C31-04
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c31-04/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c31-04/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C31-05
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c31-05/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c31-05/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C31-06
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c31-06/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c31-06/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C31-07
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c31-07/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c31-07/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C31-08
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c31-08/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c31-08/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C31-09
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c31-09/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c31-09/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C31-10
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c31-10/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c31-10/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C32-01
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c32-01/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c32-01/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C32-02
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c32-02/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c32-02/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C32-03
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c32-03/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c32-03/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C32-04
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c32-04/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c32-04/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C32-05
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c32-05/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c32-05/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C32-06
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c32-06/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c32-06/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C32-07
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c32-07/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c32-07/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C32-08
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c32-08/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c32-08/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C32-09
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c32-09/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c32-09/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C32-10
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c32-10/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c32-10/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C01-01
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c01-01/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c01-01/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C01-02
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c01-02/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c01-02/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C01-03
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c01-03/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c01-03/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C01-04
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c01-04/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c01-04/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C01-05
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c01-05/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c01-05/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C01-06
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c01-06/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c01-06/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C01-07
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c01-07/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c01-07/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C01-08
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c01-08/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c01-08/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C01-09
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c01-09/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c01-09/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C01-10
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c01-10/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c01-10/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C02-01
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c02-01/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c02-01/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C02-02
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c02-02/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c02-02/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C02-03
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c02-03/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c02-03/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C02-04
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c02-04/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c02-04/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C02-05
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c02-05/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c02-05/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C02-06
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c02-06/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c02-06/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C02-07
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c02-07/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c02-07/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C02-08
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c02-08/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c02-08/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C02-09
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c02-09/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c02-09/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C02-10
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c02-10/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c02-10/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C03-01
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c03-01/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c03-01/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C03-02
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c03-02/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c03-02/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C03-03
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c03-03/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c03-03/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C03-04
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c03-04/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c03-04/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C03-05
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c03-05/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c03-05/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C03-06
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c03-06/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c03-06/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C03-07
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c03-07/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c03-07/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C03-08
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c03-08/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c03-08/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C03-09
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c03-09/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c03-09/SA_VPosition
-      unit: m
-- type: pyaml.bpm.bpm
-  name: BPM_C03-10
-  model:
-    type: pyaml.bpm.bpm_simple_model
-    x_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c03-10/SA_HPosition
-      unit: m
-    y_pos:
-      type: tango.pyaml.attribute_read_only
-      attribute: srdiag/bpm/c03-10/SA_VPosition
-      unit: m
+- elements_code: |
+    out:list[dict] = []
+    ranges = [(4,33), (1,4)]
+    for r in ranges:
+        for cell in range(r[0], r[1]):
+            for elem in range(1, 11):
+                bpm = {"type": "pyaml.bpm.bpm",
+                    "name": f"BPM_C{cell:02d}-{elem:02d}",
+                    "model": {"type": "pyaml.bpm.bpm_simple_model",
+                              "x_pos": { "type": "tango.pyaml.attribute_read_only",
+                                         "attribute": f"srdiag/bpm/c{cell:02d}-{elem:02d}/SA_HPosition",
+                                         "unit": "m",
+                                         },
+                              "y_pos": {"type": "tango.pyaml.attribute_read_only",
+                                        "attribute": f"srdiag/bpm/c{cell:02d}-{elem:02d}/SA_VPosition",
+                                        "unit": "m",
+                                        },
+                              }
+                    }
+                out.append(bpm)
+    return out
diff --git a/tests/test_load_conf_with_code.py b/tests/test_load_conf_with_code.py
new file mode 100644
index 000000000..ceb4747d0
--- /dev/null
+++ b/tests/test_load_conf_with_code.py
@@ -0,0 +1,13 @@
+from pathlib import Path
+
+from pyaml.accelerator import Accelerator
+
+
+def test_load_conf_with_code():
+    parent_folder = Path(__file__).parent
+    config_path = parent_folder.joinpath("config", "EBSOrbit.yaml").resolve()
+
+    sr: Accelerator = Accelerator.load(config_path)
+    bpms = sr.live.get_bpms("BPM")
+    assert bpms is not None
+    assert len(bpms) == 320

From 13b5d1f0f87da822abc4eb663476915446bbe995 Mon Sep 17 00:00:00 2001
From: gubaidulinvadim <gubaidulinvadim@gmail.com>
Date: Thu, 5 Mar 2026 10:33:32 +0100
Subject: [PATCH 03/11] Added test of duplicate with regex/wildcards in the
 config

---
 tests/config/bad_conf_duplicate_4.yaml | 24 ++++++++++++++++++++++++
 tests/test_errors.py                   |  4 ++++
 2 files changed, 28 insertions(+)
 create mode 100644 tests/config/bad_conf_duplicate_4.yaml

diff --git a/tests/config/bad_conf_duplicate_4.yaml b/tests/config/bad_conf_duplicate_4.yaml
new file mode 100644
index 000000000..95beb2f24
--- /dev/null
+++ b/tests/config/bad_conf_duplicate_4.yaml
@@ -0,0 +1,24 @@
+type: pyaml.accelerator
+facility: ESRF
+machine: sr
+energy: 6e9
+simulators:
+  - type: pyaml.lattice.simulator
+    lattice: sr/lattices/ebs.mat
+    name: design
+data_folder: /data/store
+arrays:
+  - type: pyaml.arrays.magnet
+    name: HCORR
+    elements:
+      - SH1A-C0?-H
+      - SH1A-C02-H # duplicate name in array
+  - type: pyaml.arrays.magnet
+    name: VCORR
+    elements:
+      - SH1A-C01-V
+      - SH1A-C02-V
+devices:
+  - sr/quadrupoles/QF1AC01.yaml
+  - sr/correctors/SH1AC01.yaml
+  - sr/correctors/SH1AC02.yaml
diff --git a/tests/test_errors.py b/tests/test_errors.py
index a71d28b40..04b176086 100644
--- a/tests/test_errors.py
+++ b/tests/test_errors.py
@@ -24,6 +24,10 @@ def test_tune(install_test_package):
     assert "element BPM_C04-06 already defined" in str(exc)
     assert "line 58, column 3" in str(exc)
 
+    with pytest.raises(PyAMLConfigException) as exc:
+        ml: Accelerator = Accelerator.load("tests/config/bad_conf_duplicate_4.yaml")
+    assert "MagnetArray HCORR : duplicate name SH1A-C02-H @index 2" in str(exc)
+
     sr: Accelerator = Accelerator.load("tests/config/EBSTune.yaml")
     m1 = sr.live.get_magnet("QF1E-C04")
     m2 = sr.design.get_magnet("QF1A-C05")

From 0f514d74666aebee79b3ae0cf3f6f710a20e5b93 Mon Sep 17 00:00:00 2001
From: guillaumepichon <guillaume.pichon@synchrotron-soleil.fr>
Date: Thu, 5 Mar 2026 17:03:40 +0100
Subject: [PATCH 04/11] Arrays are sorted accordingly with the device order.
 Now, it is possible to add an exclude pattern but a test must be added for
 that part. Also, the test `test_tune_hardware.py` is not working anymore but
 it is probably due to some numeric accuracy problems. Those 2 points will be
 solved later.

---
 pyaml/common/element_holder.py | 45 +++++++++++++++++++++-------------
 tests/config/EBSOrbit.yaml     |  3 ++-
 tests/test_arrays.py           |  6 ++---
 tests/test_tune_hardware.py    |  5 ++--
 4 files changed, 36 insertions(+), 23 deletions(-)

diff --git a/pyaml/common/element_holder.py b/pyaml/common/element_holder.py
index 64b05b323..0d1e34fa5 100644
--- a/pyaml/common/element_holder.py
+++ b/pyaml/common/element_holder.py
@@ -102,24 +102,35 @@ def fill_array(
         constructor,
         ARR: dict,
     ):
-        a = []
-
+        all_names: list[str] = []
+        excluded_names: list[str] = []
         for name in element_names:
-            names = self.find_elements(name)
-
-            for n in names:
-                try:
-                    m = get_func(n)
-                except Exception as err:
-                    raise PyAMLException(
-                        f"{constructor.__name__} {array_name} : {err} @index {len(a)}"
-                    ) from None
-                if m in a:
-                    raise PyAMLException(
-                        f"{constructor.__name__} {array_name} : "
-                        f"duplicate name {name} @index {len(a)}"
-                    ) from None
-                a.append(m)
+            if name.startswith("!"):
+                names = self.find_elements(name[1:])
+                excluded_names.extend(names)
+            else:
+                names = self.find_elements(name)
+                all_names.extend(names)
+
+        [all_names.remove(name) for name in excluded_names]
+
+        order = {elem_name: i for i, elem_name in enumerate(self.__ALL.keys())}
+        all_names = sorted(all_names, key=lambda num: order[num])
+
+        a = []
+        for n in all_names:
+            try:
+                m = get_func(n)
+            except Exception as err:
+                raise PyAMLException(
+                    f"{constructor.__name__} {array_name} : {err} @index {len(a)}"
+                ) from None
+            if m in a:
+                raise PyAMLException(
+                    f"{constructor.__name__} {array_name} : "
+                    f"duplicate name {name} @index {len(a)}"
+                ) from None
+            a.append(m)
         ARR[array_name] = constructor(array_name, a)
 
     def __add(self, array, element: Element):
diff --git a/tests/config/EBSOrbit.yaml b/tests/config/EBSOrbit.yaml
index 255e09d72..6006bb8bf 100644
--- a/tests/config/EBSOrbit.yaml
+++ b/tests/config/EBSOrbit.yaml
@@ -888,7 +888,8 @@ arrays:
   - type: pyaml.arrays.bpm
     name: BPM
     elements:
-      - BPM*
+      - re:^BPM_C(0[4-9]|1[0-9]|2[0-9]|3[0-2]).*$
+      - re:^BPM_C(0[1-3]).*$
 devices:
 - type: pyaml.diagnostics.tune_monitor
   name: BETATRON_TUNE
diff --git a/tests/test_arrays.py b/tests/test_arrays.py
index 37b70365a..4b921b403 100644
--- a/tests/test_arrays.py
+++ b/tests/test_arrays.py
@@ -99,8 +99,8 @@ def test_arrays(install_test_package):
 
     strHV = sr.live.get_magnets("HVCORR").strengths.get()
     assert np.abs(strHV[0] - 0.000010) < 1e-10
-    assert np.abs(strHV[1] + 0.000008) < 1e-10
-    assert np.abs(strHV[2] - 0.000015) < 1e-10
+    assert np.abs(strHV[1] - 0.000015) < 1e-10
+    assert np.abs(strHV[2] + 0.000008) < 1e-10
     assert np.abs(strHV[3] + 0.000017) < 1e-10
 
     # Reset to 0
@@ -122,7 +122,7 @@ def test_arrays(install_test_package):
     for m in sr.live.get_magnets("HVCORR"):
         mags.append(m)
     array = MagnetArray("HVCOOR_noagg", mags, use_aggregator=False)
-    array.strengths.set([0.000010, -0.000008, 0.000015, -0.000017])
+    array.strengths.set([0.000010, 0.000015, -0.000008, -0.000017])
     ps1 = sr.live.get_cfm_magnet("SH1A-C01").hardwares.get()
     ps2 = sr.live.get_cfm_magnet("SH1A-C02").hardwares.get()
     assert np.abs(ps1[0] - 0.02956737880874648) < 1e-10
diff --git a/tests/test_tune_hardware.py b/tests/test_tune_hardware.py
index d5b9529e4..8b384dc73 100644
--- a/tests/test_tune_hardware.py
+++ b/tests/test_tune_hardware.py
@@ -38,8 +38,9 @@ def test_tune():
     newTune = tune_monitor.tune.get()
     units = quadForTuneDesign.hardwares.unit()
     diffTune = newTune - tune
+
     assert np.abs(diffTune[0] - 0.1) < 1e-3
     assert np.abs(diffTune[1] - 0.05) < 1.1e-3
-    assert np.abs(currents[0] - 88.04522942) < 1e-8
-    assert np.abs(currents[1] - 88.26677735) < 1e-8
+    assert np.abs(currents[62] - 88.04522942) < 1e-8
+    assert np.abs(currents[63] - 88.26677735) < 1e-8
     assert units[0] == "A" and units[1] == "A"

From 2aa6203e8926485401e0cc7f15b9f2ebd980b923 Mon Sep 17 00:00:00 2001
From: guillaumepichon <guillaume.pichon@synchrotron-soleil.fr>
Date: Fri, 6 Mar 2026 10:55:10 +0100
Subject: [PATCH 05/11] The pattern for exclusion is now `~`. A test is added
 for patterns.

---
 pyaml/common/element_holder.py     |    2 +-
 tests/config/EBSTune-patterns.yaml | 1781 ++++++++++++++++++++++++++++
 tests/config/EBSTune-range.yaml    |  126 +-
 tests/config/EBSTune.yaml          |  126 +-
 tests/test_patterns.py             |   25 +
 5 files changed, 1811 insertions(+), 249 deletions(-)
 create mode 100644 tests/config/EBSTune-patterns.yaml
 create mode 100644 tests/test_patterns.py

diff --git a/pyaml/common/element_holder.py b/pyaml/common/element_holder.py
index 0d1e34fa5..f5b1d3bea 100644
--- a/pyaml/common/element_holder.py
+++ b/pyaml/common/element_holder.py
@@ -105,7 +105,7 @@ def fill_array(
         all_names: list[str] = []
         excluded_names: list[str] = []
         for name in element_names:
-            if name.startswith("!"):
+            if name.startswith("~"):
                 names = self.find_elements(name[1:])
                 excluded_names.extend(names)
             else:
diff --git a/tests/config/EBSTune-patterns.yaml b/tests/config/EBSTune-patterns.yaml
new file mode 100644
index 000000000..bb877d652
--- /dev/null
+++ b/tests/config/EBSTune-patterns.yaml
@@ -0,0 +1,1781 @@
+type: pyaml.accelerator
+facility: ESRF
+machine: sr
+energy: 6e9
+description: "Accelerator configuration for EBS storage ring"
+simulators:
+  - type: pyaml.lattice.simulator
+    description: "EBS lattice"
+    lattice: sr/lattices/ebs.mat
+    name: design
+controls:
+  - type: tango.pyaml.controlsystem
+    tango_host: ebs-simu-3:10000
+    name: live
+data_folder: /data/store
+arrays:
+  - type: pyaml.arrays.magnet
+    name: QForTune
+    elements:
+      - QD2*
+      - QF1*
+  - type: pyaml.arrays.magnet
+    name: QForTest
+    elements:
+      - QD2*
+      - QF1*
+      - ~QF1E-C05
+      - ~Q???-C06
+devices:
+- type: pyaml.magnet.quadrupole
+  description: "QF1E-C04 quadrupole"
+  name: QF1E-C04
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00054
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c04-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C05
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.996841
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c05-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C05
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00191
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c05-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C06
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.0003
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c06-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C06
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.997615
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c06-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C07
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.998152
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c07-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C07
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00262
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c07-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C08
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00319
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c08-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C08
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.996180929
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c08-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C09
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00206
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c09-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C09
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.999285
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c09-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C10
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00232
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c10-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C10
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.998212
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c10-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C11
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.999225
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c11-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C11
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.998033
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c11-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C12
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.998748
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c12-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C12
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.0023
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c12-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C13
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00337
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c13-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C13
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00403
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c13-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C14
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00182
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c14-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C14
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.998303
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c14-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C15
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.998748
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c15-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C15
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.994098
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c15-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C16
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00232
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c16-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C16
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.99884
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c16-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C17
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.0079
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c17-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C17
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.999523
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c17-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C18
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c18-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C18
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.999854
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c18-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C19
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.99845
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c19-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C19
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c19-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C20
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00095
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c20-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C20
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.996753
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c20-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C21
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00334
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c21-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C21
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.997707
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c21-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C22
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00152
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c22-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C22
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.998124
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c22-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C23
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.996662
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c23-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C23
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.0017
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c23-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C24
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.999642
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c24-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C24
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00042
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c24-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C25
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00471
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c25-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C25
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00393
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c25-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C26
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.992906
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c26-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C26
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00268
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c26-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C27
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00248
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c27-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C27
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00203
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c27-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C28
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.998030791
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c28-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C28
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00232
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c28-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C29
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.995052
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c29-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C29
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00155
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c29-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C30
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.998271
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c30-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C30
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.999702
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c30-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C31
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.998005
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c31-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C31
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.999463
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c31-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C32
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.997794
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c32-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C32
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00203
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c32-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C01
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00504
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c01-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C01
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.998212
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c01-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C02
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.0037
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c02-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1E-C02
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00093
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c02-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QF1A-C03
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.0025
+    crosstalk: 1.0
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QF1_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qf1/c03-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C04
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.999305341
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c04-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C05
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.997452918
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c05-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C05
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.997993208
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c05-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C06
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.006031322
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c06-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C06
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.998547233
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c06-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C07
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.002327856
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c07-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C07
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.000154369
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c07-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C08
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.009580478
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c08-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C08
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.00447669
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c08-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C09
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.0015563
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c09-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C09
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.997221365
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c09-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C10
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.005954167
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c10-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C10
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.006725723
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c10-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C11
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.994535144
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c11-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C11
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.999550256
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c11-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C12
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.001479145
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c12-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C12
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.000321811
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c12-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C13
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.006715036
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c13-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C13
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.0036395
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c13-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C14
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.997684471
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c14-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C14
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.000385922
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c14-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C15
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.999010167
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c15-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C15
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.998392922
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c15-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C16
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.999318789
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c16-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C16
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.996926967
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c16-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C17
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.000849027
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c17-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C17
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.003392444
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c17-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C18
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.001312133
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c18-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C18
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.005402902
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c18-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C19
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.995846789
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c19-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C19
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.005877011
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c19-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C20
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.001016211
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c20-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C20
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.999010167
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c20-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C21
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.007265811
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c21-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C21
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.998238611
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c21-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C22
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.998161456
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c22-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C22
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.004642522
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c22-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C23
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.001479145
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c23-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C23
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.001942078
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c23-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C24
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.999087322
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c24-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C24
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.998547233
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c24-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C25
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.001698055
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c25-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C25
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.999704567
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c25-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C26
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.999164478
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c26-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C26
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.000694659
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c26-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C27
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.99945971
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c27-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C27
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.999922816
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c27-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C28
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.999922816
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c28-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C28
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.997838839
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c28-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C29
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.003318926
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c29-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C29
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.004179589
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c29-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C30
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.999010167
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c30-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C30
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.9987787
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c30-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C31
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.004411056
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c31-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C31
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.0029451
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c31-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C32
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.009426167
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c32-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C32
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.0050283
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c32-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C01
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 0.998533498
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c01-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C01
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.003485189
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c01-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C02
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.001389318
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c02-a/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2E-C02
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.006108478
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c02-e/current
+      unit: A
+- type: pyaml.magnet.quadrupole
+  name: QD2A-C03
+  model:
+    type: pyaml.magnet.linear_model
+    calibration_factor: 1.002096389
+    crosstalk: 0.99912
+    curve:
+      type: pyaml.configuration.csvcurve
+      file: sr/magnet_models/QD2_strength.csv
+    unit: 1/m
+    powerconverter:
+      type: tango.pyaml.attribute
+      attribute: srmag/vps-qd2/c03-a/current
+      unit: A
+- type: pyaml.diagnostics.tune_monitor
+  name: BETATRON_TUNE
+  tune_h:
+    type: tango.pyaml.attribute_read_only
+    attribute: srdiag/beam-tune/main/Qh
+    unit: mm
+  tune_v:
+    type: tango.pyaml.attribute_read_only
+    attribute: srdiag/beam-tune/main/Qv
+    unit: mm
+- type: pyaml.tuning_tools.tune
+  name: DEFAULT_TUNE_CORRECTION
+  quad_array: QForTune
+  betatron_tune: BETATRON_TUNE
+  delta: 1e-4
diff --git a/tests/config/EBSTune-range.yaml b/tests/config/EBSTune-range.yaml
index 3422a53ca..b598044c0 100644
--- a/tests/config/EBSTune-range.yaml
+++ b/tests/config/EBSTune-range.yaml
@@ -15,130 +15,8 @@ arrays:
   - type: pyaml.arrays.magnet
     name: QForTune
     elements:
-      - QD2E-C04
-      - QD2A-C05
-      - QD2E-C05
-      - QD2A-C06
-      - QD2E-C06
-      - QD2A-C07
-      - QD2E-C07
-      - QD2A-C08
-      - QD2E-C08
-      - QD2A-C09
-      - QD2E-C09
-      - QD2A-C10
-      - QD2E-C10
-      - QD2A-C11
-      - QD2E-C11
-      - QD2A-C12
-      - QD2E-C12
-      - QD2A-C13
-      - QD2E-C13
-      - QD2A-C14
-      - QD2E-C14
-      - QD2A-C15
-      - QD2E-C15
-      - QD2A-C16
-      - QD2E-C16
-      - QD2A-C17
-      - QD2E-C17
-      - QD2A-C18
-      - QD2E-C18
-      - QD2A-C19
-      - QD2E-C19
-      - QD2A-C20
-      - QD2E-C20
-      - QD2A-C21
-      - QD2E-C21
-      - QD2A-C22
-      - QD2E-C22
-      - QD2A-C23
-      - QD2E-C23
-      - QD2A-C24
-      - QD2E-C24
-      - QD2A-C25
-      - QD2E-C25
-      - QD2A-C26
-      - QD2E-C26
-      - QD2A-C27
-      - QD2E-C27
-      - QD2A-C28
-      - QD2E-C28
-      - QD2A-C29
-      - QD2E-C29
-      - QD2A-C30
-      - QD2E-C30
-      - QD2A-C31
-      - QD2E-C31
-      - QD2A-C32
-      - QD2E-C32
-      - QD2A-C01
-      - QD2E-C01
-      - QD2A-C02
-      - QD2E-C02
-      - QD2A-C03
-      - QF1E-C04
-      - QF1A-C05
-      - QF1E-C05
-      - QF1A-C06
-      - QF1E-C06
-      - QF1A-C07
-      - QF1E-C07
-      - QF1A-C08
-      - QF1E-C08
-      - QF1A-C09
-      - QF1E-C09
-      - QF1A-C10
-      - QF1E-C10
-      - QF1A-C11
-      - QF1E-C11
-      - QF1A-C12
-      - QF1E-C12
-      - QF1A-C13
-      - QF1E-C13
-      - QF1A-C14
-      - QF1E-C14
-      - QF1A-C15
-      - QF1E-C15
-      - QF1A-C16
-      - QF1E-C16
-      - QF1A-C17
-      - QF1E-C17
-      - QF1A-C18
-      - QF1E-C18
-      - QF1A-C19
-      - QF1E-C19
-      - QF1A-C20
-      - QF1E-C20
-      - QF1A-C21
-      - QF1E-C21
-      - QF1A-C22
-      - QF1E-C22
-      - QF1A-C23
-      - QF1E-C23
-      - QF1A-C24
-      - QF1E-C24
-      - QF1A-C25
-      - QF1E-C25
-      - QF1A-C26
-      - QF1E-C26
-      - QF1A-C27
-      - QF1E-C27
-      - QF1A-C28
-      - QF1E-C28
-      - QF1A-C29
-      - QF1E-C29
-      - QF1A-C30
-      - QF1E-C30
-      - QF1A-C31
-      - QF1E-C31
-      - QF1A-C32
-      - QF1E-C32
-      - QF1A-C01
-      - QF1E-C01
-      - QF1A-C02
-      - QF1E-C02
-      - QF1A-C03
+      - QD2*
+      - QF1*
 devices:
 - type: pyaml.magnet.quadrupole
   name: QF1E-C04
diff --git a/tests/config/EBSTune.yaml b/tests/config/EBSTune.yaml
index 04f255246..c1f71a3a0 100644
--- a/tests/config/EBSTune.yaml
+++ b/tests/config/EBSTune.yaml
@@ -17,130 +17,8 @@ arrays:
   - type: pyaml.arrays.magnet
     name: QForTune
     elements:
-      - QD2E-C04
-      - QD2A-C05
-      - QD2E-C05
-      - QD2A-C06
-      - QD2E-C06
-      - QD2A-C07
-      - QD2E-C07
-      - QD2A-C08
-      - QD2E-C08
-      - QD2A-C09
-      - QD2E-C09
-      - QD2A-C10
-      - QD2E-C10
-      - QD2A-C11
-      - QD2E-C11
-      - QD2A-C12
-      - QD2E-C12
-      - QD2A-C13
-      - QD2E-C13
-      - QD2A-C14
-      - QD2E-C14
-      - QD2A-C15
-      - QD2E-C15
-      - QD2A-C16
-      - QD2E-C16
-      - QD2A-C17
-      - QD2E-C17
-      - QD2A-C18
-      - QD2E-C18
-      - QD2A-C19
-      - QD2E-C19
-      - QD2A-C20
-      - QD2E-C20
-      - QD2A-C21
-      - QD2E-C21
-      - QD2A-C22
-      - QD2E-C22
-      - QD2A-C23
-      - QD2E-C23
-      - QD2A-C24
-      - QD2E-C24
-      - QD2A-C25
-      - QD2E-C25
-      - QD2A-C26
-      - QD2E-C26
-      - QD2A-C27
-      - QD2E-C27
-      - QD2A-C28
-      - QD2E-C28
-      - QD2A-C29
-      - QD2E-C29
-      - QD2A-C30
-      - QD2E-C30
-      - QD2A-C31
-      - QD2E-C31
-      - QD2A-C32
-      - QD2E-C32
-      - QD2A-C01
-      - QD2E-C01
-      - QD2A-C02
-      - QD2E-C02
-      - QD2A-C03
-      - QF1E-C04
-      - QF1A-C05
-      - QF1E-C05
-      - QF1A-C06
-      - QF1E-C06
-      - QF1A-C07
-      - QF1E-C07
-      - QF1A-C08
-      - QF1E-C08
-      - QF1A-C09
-      - QF1E-C09
-      - QF1A-C10
-      - QF1E-C10
-      - QF1A-C11
-      - QF1E-C11
-      - QF1A-C12
-      - QF1E-C12
-      - QF1A-C13
-      - QF1E-C13
-      - QF1A-C14
-      - QF1E-C14
-      - QF1A-C15
-      - QF1E-C15
-      - QF1A-C16
-      - QF1E-C16
-      - QF1A-C17
-      - QF1E-C17
-      - QF1A-C18
-      - QF1E-C18
-      - QF1A-C19
-      - QF1E-C19
-      - QF1A-C20
-      - QF1E-C20
-      - QF1A-C21
-      - QF1E-C21
-      - QF1A-C22
-      - QF1E-C22
-      - QF1A-C23
-      - QF1E-C23
-      - QF1A-C24
-      - QF1E-C24
-      - QF1A-C25
-      - QF1E-C25
-      - QF1A-C26
-      - QF1E-C26
-      - QF1A-C27
-      - QF1E-C27
-      - QF1A-C28
-      - QF1E-C28
-      - QF1A-C29
-      - QF1E-C29
-      - QF1A-C30
-      - QF1E-C30
-      - QF1A-C31
-      - QF1E-C31
-      - QF1A-C32
-      - QF1E-C32
-      - QF1A-C01
-      - QF1E-C01
-      - QF1A-C02
-      - QF1E-C02
-      - QF1A-C03
+      - QD2*
+      - QF1*
 devices:
 - type: pyaml.magnet.quadrupole
   description: "QF1E-C04 quadrupole"
diff --git a/tests/test_patterns.py b/tests/test_patterns.py
new file mode 100644
index 000000000..4fde9c1c2
--- /dev/null
+++ b/tests/test_patterns.py
@@ -0,0 +1,25 @@
+import numpy as np
+import pytest
+
+from pyaml.accelerator import Accelerator
+
+
+def test_tune():
+    sr: Accelerator = Accelerator.load(
+        "tests/config/EBSTune-patterns.yaml", ignore_external=True
+    )
+    sr.design.get_lattice().disable_6d()
+
+    quadForTune = sr.design.get_magnets("QForTune")
+    assert len(quadForTune.names()) == 124
+
+    quadForTest = sr.design.get_magnets("QForTest")
+    assert sr.design.get_magnet("QF1E-C06") is not None
+    assert sr.design.get_magnet("QF1E-C05") is not None
+    assert "QF1E-C05" not in quadForTest.names()
+    assert all(
+        [
+            not (name.startswith("Q") and name.endswith("-C06"))
+            for name in quadForTest.names()
+        ]
+    )

From 1d20e8c24e06b1ecc842d927b55bd24d03d5e8b4 Mon Sep 17 00:00:00 2001
From: guillaumepichon <guillaume.pichon@synchrotron-soleil.fr>
Date: Fri, 6 Mar 2026 11:24:32 +0100
Subject: [PATCH 06/11] File size reduction using patterns

---
 tests/config/EBSOrbit.yaml | 867 +------------------------------------
 1 file changed, 3 insertions(+), 864 deletions(-)

diff --git a/tests/config/EBSOrbit.yaml b/tests/config/EBSOrbit.yaml
index 6006bb8bf..f097c19f3 100644
--- a/tests/config/EBSOrbit.yaml
+++ b/tests/config/EBSOrbit.yaml
@@ -15,876 +15,15 @@ arrays:
   - type: pyaml.arrays.magnet
     name: HCorr
     elements:
-      - SH1A-C04-H
-      - SJ1A-C04-H
-      - SJ2A-C04-H
-      - SJ1B-C04-H
-      - SH2B-C04-H
-      - SJ1D-C04-H
-      - SJ2E-C04-H
-      - SJ1E-C04-H
-      - SH3E-C04-H
-      - SH1A-C05-H
-      - SD1A-C05-H
-      - SF2A-C05-H
-      - SD1B-C05-H
-      - SH2B-C05-H
-      - SD1D-C05-H
-      - SF2E-C05-H
-      - SD1E-C05-H
-      - SH3E-C05-H
-      - SH1A-C06-H
-      - SD1A-C06-H
-      - SF2A-C06-H
-      - SD1B-C06-H
-      - SH2B-C06-H
-      - SD1D-C06-H
-      - SF2E-C06-H
-      - SD1E-C06-H
-      - SH3E-C06-H
-      - SH1A-C07-H
-      - SD1A-C07-H
-      - SF2A-C07-H
-      - SD1B-C07-H
-      - SH2B-C07-H
-      - SD1D-C07-H
-      - SF2E-C07-H
-      - SD1E-C07-H
-      - SH3E-C07-H
-      - SH1A-C08-H
-      - SD1A-C08-H
-      - SF2A-C08-H
-      - SD1B-C08-H
-      - SH2B-C08-H
-      - SD1D-C08-H
-      - SF2E-C08-H
-      - SD1E-C08-H
-      - SH3E-C08-H
-      - SH1A-C09-H
-      - SD1A-C09-H
-      - SF2A-C09-H
-      - SD1B-C09-H
-      - SH2B-C09-H
-      - SD1D-C09-H
-      - SF2E-C09-H
-      - SD1E-C09-H
-      - SH3E-C09-H
-      - SH1A-C10-H
-      - SD1A-C10-H
-      - SF2A-C10-H
-      - SD1B-C10-H
-      - SH2B-C10-H
-      - SD1D-C10-H
-      - SF2E-C10-H
-      - SD1E-C10-H
-      - SH3E-C10-H
-      - SH1A-C11-H
-      - SD1A-C11-H
-      - SF2A-C11-H
-      - SD1B-C11-H
-      - SH2B-C11-H
-      - SD1D-C11-H
-      - SF2E-C11-H
-      - SD1E-C11-H
-      - SH3E-C11-H
-      - SH1A-C12-H
-      - SD1A-C12-H
-      - SF2A-C12-H
-      - SD1B-C12-H
-      - SH2B-C12-H
-      - SD1D-C12-H
-      - SF2E-C12-H
-      - SD1E-C12-H
-      - SH3E-C12-H
-      - SH1A-C13-H
-      - SD1A-C13-H
-      - SF2A-C13-H
-      - SD1B-C13-H
-      - SH2B-C13-H
-      - SD1D-C13-H
-      - SF2E-C13-H
-      - SD1E-C13-H
-      - SH3E-C13-H
-      - SH1A-C14-H
-      - SD1A-C14-H
-      - SF2A-C14-H
-      - SD1B-C14-H
-      - SH2B-C14-H
-      - SD1D-C14-H
-      - SF2E-C14-H
-      - SD1E-C14-H
-      - SH3E-C14-H
-      - SH1A-C15-H
-      - SD1A-C15-H
-      - SF2A-C15-H
-      - SD1B-C15-H
-      - SH2B-C15-H
-      - SD1D-C15-H
-      - SF2E-C15-H
-      - SD1E-C15-H
-      - SH3E-C15-H
-      - SH1A-C16-H
-      - SD1A-C16-H
-      - SF2A-C16-H
-      - SD1B-C16-H
-      - SH2B-C16-H
-      - SD1D-C16-H
-      - SF2E-C16-H
-      - SD1E-C16-H
-      - SH3E-C16-H
-      - SH1A-C17-H
-      - SD1A-C17-H
-      - SF2A-C17-H
-      - SD1B-C17-H
-      - SH2B-C17-H
-      - SD1D-C17-H
-      - SF2E-C17-H
-      - SD1E-C17-H
-      - SH3E-C17-H
-      - SH1A-C18-H
-      - SD1A-C18-H
-      - SF2A-C18-H
-      - SD1B-C18-H
-      - SH2B-C18-H
-      - SD1D-C18-H
-      - SF2E-C18-H
-      - SD1E-C18-H
-      - SH3E-C18-H
-      - SH1A-C19-H
-      - SD1A-C19-H
-      - SF2A-C19-H
-      - SD1B-C19-H
-      - SH2B-C19-H
-      - SD1D-C19-H
-      - SF2E-C19-H
-      - SD1E-C19-H
-      - SH3E-C19-H
-      - SH1A-C20-H
-      - SD1A-C20-H
-      - SF2A-C20-H
-      - SD1B-C20-H
-      - SH2B-C20-H
-      - SD1D-C20-H
-      - SF2E-C20-H
-      - SD1E-C20-H
-      - SH3E-C20-H
-      - SH1A-C21-H
-      - SD1A-C21-H
-      - SF2A-C21-H
-      - SD1B-C21-H
-      - SH2B-C21-H
-      - SD1D-C21-H
-      - SF2E-C21-H
-      - SD1E-C21-H
-      - SH3E-C21-H
-      - SH1A-C22-H
-      - SD1A-C22-H
-      - SF2A-C22-H
-      - SD1B-C22-H
-      - SH2B-C22-H
-      - SD1D-C22-H
-      - SF2E-C22-H
-      - SD1E-C22-H
-      - SH3E-C22-H
-      - SH1A-C23-H
-      - SD1A-C23-H
-      - SF2A-C23-H
-      - SD1B-C23-H
-      - SH2B-C23-H
-      - SD1D-C23-H
-      - SF2E-C23-H
-      - SD1E-C23-H
-      - SH3E-C23-H
-      - SH1A-C24-H
-      - SD1A-C24-H
-      - SF2A-C24-H
-      - SD1B-C24-H
-      - SH2B-C24-H
-      - SD1D-C24-H
-      - SF2E-C24-H
-      - SD1E-C24-H
-      - SH3E-C24-H
-      - SH1A-C25-H
-      - SD1A-C25-H
-      - SF2A-C25-H
-      - SD1B-C25-H
-      - SH2B-C25-H
-      - SD1D-C25-H
-      - SF2E-C25-H
-      - SD1E-C25-H
-      - SH3E-C25-H
-      - SH1A-C26-H
-      - SD1A-C26-H
-      - SF2A-C26-H
-      - SD1B-C26-H
-      - SH2B-C26-H
-      - SD1D-C26-H
-      - SF2E-C26-H
-      - SD1E-C26-H
-      - SH3E-C26-H
-      - SH1A-C27-H
-      - SD1A-C27-H
-      - SF2A-C27-H
-      - SD1B-C27-H
-      - SH2B-C27-H
-      - SD1D-C27-H
-      - SF2E-C27-H
-      - SD1E-C27-H
-      - SH3E-C27-H
-      - SH1A-C28-H
-      - SD1A-C28-H
-      - SF2A-C28-H
-      - SD1B-C28-H
-      - SH2B-C28-H
-      - SD1D-C28-H
-      - SF2E-C28-H
-      - SD1E-C28-H
-      - SH3E-C28-H
-      - SH1A-C29-H
-      - SD1A-C29-H
-      - SF2A-C29-H
-      - SD1B-C29-H
-      - SH2B-C29-H
-      - SD1D-C29-H
-      - SF2E-C29-H
-      - SD1E-C29-H
-      - SH3E-C29-H
-      - SH1A-C30-H
-      - SD1A-C30-H
-      - SF2A-C30-H
-      - SD1B-C30-H
-      - SH2B-C30-H
-      - SD1D-C30-H
-      - SF2E-C30-H
-      - SD1E-C30-H
-      - SH3E-C30-H
-      - SH1A-C31-H
-      - SD1A-C31-H
-      - SF2A-C31-H
-      - SD1B-C31-H
-      - SH2B-C31-H
-      - SD1D-C31-H
-      - SF2E-C31-H
-      - SD1E-C31-H
-      - SH3E-C31-H
-      - SH1A-C32-H
-      - SD1A-C32-H
-      - SF2A-C32-H
-      - SD1B-C32-H
-      - SH2B-C32-H
-      - SD1D-C32-H
-      - SF2E-C32-H
-      - SD1E-C32-H
-      - SH3E-C32-H
-      - SH1A-C01-H
-      - SD1A-C01-H
-      - SF2A-C01-H
-      - SD1B-C01-H
-      - SH2B-C01-H
-      - SD1D-C01-H
-      - SF2E-C01-H
-      - SD1E-C01-H
-      - SH3E-C01-H
-      - SH1A-C02-H
-      - SD1A-C02-H
-      - SF2A-C02-H
-      - SD1B-C02-H
-      - SH2B-C02-H
-      - SD1D-C02-H
-      - SF2E-C02-H
-      - SD1E-C02-H
-      - SH3E-C02-H
-      - SH1A-C03-H
-      - SI1A-C03-H
-      - SI2A-C03-H
-      - SI1B-C03-H
-      - SH2B-C03-H
-      - SI1D-C03-H
-      - SI2E-C03-H
-      - SI1E-C03-H
-      - SH3E-C03-H
+      - S*-H
   - type: pyaml.arrays.magnet
     name: VCorr
     elements:
-      - SH1A-C04-V
-      - SJ1A-C04-V
-      - SJ2A-C04-V
-      - SJ1B-C04-V
-      - SH2B-C04-V
-      - SJ1D-C04-V
-      - SJ2E-C04-V
-      - SJ1E-C04-V
-      - SH3E-C04-V
-      - SH1A-C05-V
-      - SD1A-C05-V
-      - SF2A-C05-V
-      - SD1B-C05-V
-      - SH2B-C05-V
-      - SD1D-C05-V
-      - SF2E-C05-V
-      - SD1E-C05-V
-      - SH3E-C05-V
-      - SH1A-C06-V
-      - SD1A-C06-V
-      - SF2A-C06-V
-      - SD1B-C06-V
-      - SH2B-C06-V
-      - SD1D-C06-V
-      - SF2E-C06-V
-      - SD1E-C06-V
-      - SH3E-C06-V
-      - SH1A-C07-V
-      - SD1A-C07-V
-      - SF2A-C07-V
-      - SD1B-C07-V
-      - SH2B-C07-V
-      - SD1D-C07-V
-      - SF2E-C07-V
-      - SD1E-C07-V
-      - SH3E-C07-V
-      - SH1A-C08-V
-      - SD1A-C08-V
-      - SF2A-C08-V
-      - SD1B-C08-V
-      - SH2B-C08-V
-      - SD1D-C08-V
-      - SF2E-C08-V
-      - SD1E-C08-V
-      - SH3E-C08-V
-      - SH1A-C09-V
-      - SD1A-C09-V
-      - SF2A-C09-V
-      - SD1B-C09-V
-      - SH2B-C09-V
-      - SD1D-C09-V
-      - SF2E-C09-V
-      - SD1E-C09-V
-      - SH3E-C09-V
-      - SH1A-C10-V
-      - SD1A-C10-V
-      - SF2A-C10-V
-      - SD1B-C10-V
-      - SH2B-C10-V
-      - SD1D-C10-V
-      - SF2E-C10-V
-      - SD1E-C10-V
-      - SH3E-C10-V
-      - SH1A-C11-V
-      - SD1A-C11-V
-      - SF2A-C11-V
-      - SD1B-C11-V
-      - SH2B-C11-V
-      - SD1D-C11-V
-      - SF2E-C11-V
-      - SD1E-C11-V
-      - SH3E-C11-V
-      - SH1A-C12-V
-      - SD1A-C12-V
-      - SF2A-C12-V
-      - SD1B-C12-V
-      - SH2B-C12-V
-      - SD1D-C12-V
-      - SF2E-C12-V
-      - SD1E-C12-V
-      - SH3E-C12-V
-      - SH1A-C13-V
-      - SD1A-C13-V
-      - SF2A-C13-V
-      - SD1B-C13-V
-      - SH2B-C13-V
-      - SD1D-C13-V
-      - SF2E-C13-V
-      - SD1E-C13-V
-      - SH3E-C13-V
-      - SH1A-C14-V
-      - SD1A-C14-V
-      - SF2A-C14-V
-      - SD1B-C14-V
-      - SH2B-C14-V
-      - SD1D-C14-V
-      - SF2E-C14-V
-      - SD1E-C14-V
-      - SH3E-C14-V
-      - SH1A-C15-V
-      - SD1A-C15-V
-      - SF2A-C15-V
-      - SD1B-C15-V
-      - SH2B-C15-V
-      - SD1D-C15-V
-      - SF2E-C15-V
-      - SD1E-C15-V
-      - SH3E-C15-V
-      - SH1A-C16-V
-      - SD1A-C16-V
-      - SF2A-C16-V
-      - SD1B-C16-V
-      - SH2B-C16-V
-      - SD1D-C16-V
-      - SF2E-C16-V
-      - SD1E-C16-V
-      - SH3E-C16-V
-      - SH1A-C17-V
-      - SD1A-C17-V
-      - SF2A-C17-V
-      - SD1B-C17-V
-      - SH2B-C17-V
-      - SD1D-C17-V
-      - SF2E-C17-V
-      - SD1E-C17-V
-      - SH3E-C17-V
-      - SH1A-C18-V
-      - SD1A-C18-V
-      - SF2A-C18-V
-      - SD1B-C18-V
-      - SH2B-C18-V
-      - SD1D-C18-V
-      - SF2E-C18-V
-      - SD1E-C18-V
-      - SH3E-C18-V
-      - SH1A-C19-V
-      - SD1A-C19-V
-      - SF2A-C19-V
-      - SD1B-C19-V
-      - SH2B-C19-V
-      - SD1D-C19-V
-      - SF2E-C19-V
-      - SD1E-C19-V
-      - SH3E-C19-V
-      - SH1A-C20-V
-      - SD1A-C20-V
-      - SF2A-C20-V
-      - SD1B-C20-V
-      - SH2B-C20-V
-      - SD1D-C20-V
-      - SF2E-C20-V
-      - SD1E-C20-V
-      - SH3E-C20-V
-      - SH1A-C21-V
-      - SD1A-C21-V
-      - SF2A-C21-V
-      - SD1B-C21-V
-      - SH2B-C21-V
-      - SD1D-C21-V
-      - SF2E-C21-V
-      - SD1E-C21-V
-      - SH3E-C21-V
-      - SH1A-C22-V
-      - SD1A-C22-V
-      - SF2A-C22-V
-      - SD1B-C22-V
-      - SH2B-C22-V
-      - SD1D-C22-V
-      - SF2E-C22-V
-      - SD1E-C22-V
-      - SH3E-C22-V
-      - SH1A-C23-V
-      - SD1A-C23-V
-      - SF2A-C23-V
-      - SD1B-C23-V
-      - SH2B-C23-V
-      - SD1D-C23-V
-      - SF2E-C23-V
-      - SD1E-C23-V
-      - SH3E-C23-V
-      - SH1A-C24-V
-      - SD1A-C24-V
-      - SF2A-C24-V
-      - SD1B-C24-V
-      - SH2B-C24-V
-      - SD1D-C24-V
-      - SF2E-C24-V
-      - SD1E-C24-V
-      - SH3E-C24-V
-      - SH1A-C25-V
-      - SD1A-C25-V
-      - SF2A-C25-V
-      - SD1B-C25-V
-      - SH2B-C25-V
-      - SD1D-C25-V
-      - SF2E-C25-V
-      - SD1E-C25-V
-      - SH3E-C25-V
-      - SH1A-C26-V
-      - SD1A-C26-V
-      - SF2A-C26-V
-      - SD1B-C26-V
-      - SH2B-C26-V
-      - SD1D-C26-V
-      - SF2E-C26-V
-      - SD1E-C26-V
-      - SH3E-C26-V
-      - SH1A-C27-V
-      - SD1A-C27-V
-      - SF2A-C27-V
-      - SD1B-C27-V
-      - SH2B-C27-V
-      - SD1D-C27-V
-      - SF2E-C27-V
-      - SD1E-C27-V
-      - SH3E-C27-V
-      - SH1A-C28-V
-      - SD1A-C28-V
-      - SF2A-C28-V
-      - SD1B-C28-V
-      - SH2B-C28-V
-      - SD1D-C28-V
-      - SF2E-C28-V
-      - SD1E-C28-V
-      - SH3E-C28-V
-      - SH1A-C29-V
-      - SD1A-C29-V
-      - SF2A-C29-V
-      - SD1B-C29-V
-      - SH2B-C29-V
-      - SD1D-C29-V
-      - SF2E-C29-V
-      - SD1E-C29-V
-      - SH3E-C29-V
-      - SH1A-C30-V
-      - SD1A-C30-V
-      - SF2A-C30-V
-      - SD1B-C30-V
-      - SH2B-C30-V
-      - SD1D-C30-V
-      - SF2E-C30-V
-      - SD1E-C30-V
-      - SH3E-C30-V
-      - SH1A-C31-V
-      - SD1A-C31-V
-      - SF2A-C31-V
-      - SD1B-C31-V
-      - SH2B-C31-V
-      - SD1D-C31-V
-      - SF2E-C31-V
-      - SD1E-C31-V
-      - SH3E-C31-V
-      - SH1A-C32-V
-      - SD1A-C32-V
-      - SF2A-C32-V
-      - SD1B-C32-V
-      - SH2B-C32-V
-      - SD1D-C32-V
-      - SF2E-C32-V
-      - SD1E-C32-V
-      - SH3E-C32-V
-      - SH1A-C01-V
-      - SD1A-C01-V
-      - SF2A-C01-V
-      - SD1B-C01-V
-      - SH2B-C01-V
-      - SD1D-C01-V
-      - SF2E-C01-V
-      - SD1E-C01-V
-      - SH3E-C01-V
-      - SH1A-C02-V
-      - SD1A-C02-V
-      - SF2A-C02-V
-      - SD1B-C02-V
-      - SH2B-C02-V
-      - SD1D-C02-V
-      - SF2E-C02-V
-      - SD1E-C02-V
-      - SH3E-C02-V
-      - SH1A-C03-V
-      - SI1A-C03-V
-      - SI2A-C03-V
-      - SI1B-C03-V
-      - SH2B-C03-V
-      - SI1D-C03-V
-      - SI2E-C03-V
-      - SI1E-C03-V
-      - SH3E-C03-V
+      - S*-V
   - type: pyaml.arrays.magnet
     name: Skews
     elements:
-      - SH1A-C04-SQ
-      - SJ1A-C04-SQ
-      - SJ2A-C04-SQ
-      - SJ1B-C04-SQ
-      - SH2B-C04-SQ
-      - SJ1D-C04-SQ
-      - SJ2E-C04-SQ
-      - SJ1E-C04-SQ
-      - SH3E-C04-SQ
-      - SH1A-C05-SQ
-      - SD1A-C05-SQ
-      - SF2A-C05-SQ
-      - SD1B-C05-SQ
-      - SH2B-C05-SQ
-      - SD1D-C05-SQ
-      - SF2E-C05-SQ
-      - SD1E-C05-SQ
-      - SH3E-C05-SQ
-      - SH1A-C06-SQ
-      - SD1A-C06-SQ
-      - SF2A-C06-SQ
-      - SD1B-C06-SQ
-      - SH2B-C06-SQ
-      - SD1D-C06-SQ
-      - SF2E-C06-SQ
-      - SD1E-C06-SQ
-      - SH3E-C06-SQ
-      - SH1A-C07-SQ
-      - SD1A-C07-SQ
-      - SF2A-C07-SQ
-      - SD1B-C07-SQ
-      - SH2B-C07-SQ
-      - SD1D-C07-SQ
-      - SF2E-C07-SQ
-      - SD1E-C07-SQ
-      - SH3E-C07-SQ
-      - SH1A-C08-SQ
-      - SD1A-C08-SQ
-      - SF2A-C08-SQ
-      - SD1B-C08-SQ
-      - SH2B-C08-SQ
-      - SD1D-C08-SQ
-      - SF2E-C08-SQ
-      - SD1E-C08-SQ
-      - SH3E-C08-SQ
-      - SH1A-C09-SQ
-      - SD1A-C09-SQ
-      - SF2A-C09-SQ
-      - SD1B-C09-SQ
-      - SH2B-C09-SQ
-      - SD1D-C09-SQ
-      - SF2E-C09-SQ
-      - SD1E-C09-SQ
-      - SH3E-C09-SQ
-      - SH1A-C10-SQ
-      - SD1A-C10-SQ
-      - SF2A-C10-SQ
-      - SD1B-C10-SQ
-      - SH2B-C10-SQ
-      - SD1D-C10-SQ
-      - SF2E-C10-SQ
-      - SD1E-C10-SQ
-      - SH3E-C10-SQ
-      - SH1A-C11-SQ
-      - SD1A-C11-SQ
-      - SF2A-C11-SQ
-      - SD1B-C11-SQ
-      - SH2B-C11-SQ
-      - SD1D-C11-SQ
-      - SF2E-C11-SQ
-      - SD1E-C11-SQ
-      - SH3E-C11-SQ
-      - SH1A-C12-SQ
-      - SD1A-C12-SQ
-      - SF2A-C12-SQ
-      - SD1B-C12-SQ
-      - SH2B-C12-SQ
-      - SD1D-C12-SQ
-      - SF2E-C12-SQ
-      - SD1E-C12-SQ
-      - SH3E-C12-SQ
-      - SH1A-C13-SQ
-      - SD1A-C13-SQ
-      - SF2A-C13-SQ
-      - SD1B-C13-SQ
-      - SH2B-C13-SQ
-      - SD1D-C13-SQ
-      - SF2E-C13-SQ
-      - SD1E-C13-SQ
-      - SH3E-C13-SQ
-      - SH1A-C14-SQ
-      - SD1A-C14-SQ
-      - SF2A-C14-SQ
-      - SD1B-C14-SQ
-      - SH2B-C14-SQ
-      - SD1D-C14-SQ
-      - SF2E-C14-SQ
-      - SD1E-C14-SQ
-      - SH3E-C14-SQ
-      - SH1A-C15-SQ
-      - SD1A-C15-SQ
-      - SF2A-C15-SQ
-      - SD1B-C15-SQ
-      - SH2B-C15-SQ
-      - SD1D-C15-SQ
-      - SF2E-C15-SQ
-      - SD1E-C15-SQ
-      - SH3E-C15-SQ
-      - SH1A-C16-SQ
-      - SD1A-C16-SQ
-      - SF2A-C16-SQ
-      - SD1B-C16-SQ
-      - SH2B-C16-SQ
-      - SD1D-C16-SQ
-      - SF2E-C16-SQ
-      - SD1E-C16-SQ
-      - SH3E-C16-SQ
-      - SH1A-C17-SQ
-      - SD1A-C17-SQ
-      - SF2A-C17-SQ
-      - SD1B-C17-SQ
-      - SH2B-C17-SQ
-      - SD1D-C17-SQ
-      - SF2E-C17-SQ
-      - SD1E-C17-SQ
-      - SH3E-C17-SQ
-      - SH1A-C18-SQ
-      - SD1A-C18-SQ
-      - SF2A-C18-SQ
-      - SD1B-C18-SQ
-      - SH2B-C18-SQ
-      - SD1D-C18-SQ
-      - SF2E-C18-SQ
-      - SD1E-C18-SQ
-      - SH3E-C18-SQ
-      - SH1A-C19-SQ
-      - SD1A-C19-SQ
-      - SF2A-C19-SQ
-      - SD1B-C19-SQ
-      - SH2B-C19-SQ
-      - SD1D-C19-SQ
-      - SF2E-C19-SQ
-      - SD1E-C19-SQ
-      - SH3E-C19-SQ
-      - SH1A-C20-SQ
-      - SD1A-C20-SQ
-      - SF2A-C20-SQ
-      - SD1B-C20-SQ
-      - SH2B-C20-SQ
-      - SD1D-C20-SQ
-      - SF2E-C20-SQ
-      - SD1E-C20-SQ
-      - SH3E-C20-SQ
-      - SH1A-C21-SQ
-      - SD1A-C21-SQ
-      - SF2A-C21-SQ
-      - SD1B-C21-SQ
-      - SH2B-C21-SQ
-      - SD1D-C21-SQ
-      - SF2E-C21-SQ
-      - SD1E-C21-SQ
-      - SH3E-C21-SQ
-      - SH1A-C22-SQ
-      - SD1A-C22-SQ
-      - SF2A-C22-SQ
-      - SD1B-C22-SQ
-      - SH2B-C22-SQ
-      - SD1D-C22-SQ
-      - SF2E-C22-SQ
-      - SD1E-C22-SQ
-      - SH3E-C22-SQ
-      - SH1A-C23-SQ
-      - SD1A-C23-SQ
-      - SF2A-C23-SQ
-      - SD1B-C23-SQ
-      - SH2B-C23-SQ
-      - SD1D-C23-SQ
-      - SF2E-C23-SQ
-      - SD1E-C23-SQ
-      - SH3E-C23-SQ
-      - SH1A-C24-SQ
-      - SD1A-C24-SQ
-      - SF2A-C24-SQ
-      - SD1B-C24-SQ
-      - SH2B-C24-SQ
-      - SD1D-C24-SQ
-      - SF2E-C24-SQ
-      - SD1E-C24-SQ
-      - SH3E-C24-SQ
-      - SH1A-C25-SQ
-      - SD1A-C25-SQ
-      - SF2A-C25-SQ
-      - SD1B-C25-SQ
-      - SH2B-C25-SQ
-      - SD1D-C25-SQ
-      - SF2E-C25-SQ
-      - SD1E-C25-SQ
-      - SH3E-C25-SQ
-      - SH1A-C26-SQ
-      - SD1A-C26-SQ
-      - SF2A-C26-SQ
-      - SD1B-C26-SQ
-      - SH2B-C26-SQ
-      - SD1D-C26-SQ
-      - SF2E-C26-SQ
-      - SD1E-C26-SQ
-      - SH3E-C26-SQ
-      - SH1A-C27-SQ
-      - SD1A-C27-SQ
-      - SF2A-C27-SQ
-      - SD1B-C27-SQ
-      - SH2B-C27-SQ
-      - SD1D-C27-SQ
-      - SF2E-C27-SQ
-      - SD1E-C27-SQ
-      - SH3E-C27-SQ
-      - SH1A-C28-SQ
-      - SD1A-C28-SQ
-      - SF2A-C28-SQ
-      - SD1B-C28-SQ
-      - SH2B-C28-SQ
-      - SD1D-C28-SQ
-      - SF2E-C28-SQ
-      - SD1E-C28-SQ
-      - SH3E-C28-SQ
-      - SH1A-C29-SQ
-      - SD1A-C29-SQ
-      - SF2A-C29-SQ
-      - SD1B-C29-SQ
-      - SH2B-C29-SQ
-      - SD1D-C29-SQ
-      - SF2E-C29-SQ
-      - SD1E-C29-SQ
-      - SH3E-C29-SQ
-      - SH1A-C30-SQ
-      - SD1A-C30-SQ
-      - SF2A-C30-SQ
-      - SD1B-C30-SQ
-      - SH2B-C30-SQ
-      - SD1D-C30-SQ
-      - SF2E-C30-SQ
-      - SD1E-C30-SQ
-      - SH3E-C30-SQ
-      - SH1A-C31-SQ
-      - SD1A-C31-SQ
-      - SF2A-C31-SQ
-      - SD1B-C31-SQ
-      - SH2B-C31-SQ
-      - SD1D-C31-SQ
-      - SF2E-C31-SQ
-      - SD1E-C31-SQ
-      - SH3E-C31-SQ
-      - SH1A-C32-SQ
-      - SD1A-C32-SQ
-      - SF2A-C32-SQ
-      - SD1B-C32-SQ
-      - SH2B-C32-SQ
-      - SD1D-C32-SQ
-      - SF2E-C32-SQ
-      - SD1E-C32-SQ
-      - SH3E-C32-SQ
-      - SH1A-C01-SQ
-      - SD1A-C01-SQ
-      - SF2A-C01-SQ
-      - SD1B-C01-SQ
-      - SH2B-C01-SQ
-      - SD1D-C01-SQ
-      - SF2E-C01-SQ
-      - SD1E-C01-SQ
-      - SH3E-C01-SQ
-      - SH1A-C02-SQ
-      - SD1A-C02-SQ
-      - SF2A-C02-SQ
-      - SD1B-C02-SQ
-      - SH2B-C02-SQ
-      - SD1D-C02-SQ
-      - SF2E-C02-SQ
-      - SD1E-C02-SQ
-      - SH3E-C02-SQ
-      - SH1A-C03-SQ
-      - SI1A-C03-SQ
-      - SI2A-C03-SQ
-      - SI1B-C03-SQ
-      - SH2B-C03-SQ
-      - SI1D-C03-SQ
-      - SI2E-C03-SQ
-      - SI1E-C03-SQ
-      - SH3E-C03-SQ
+      - S*-SQ
   - type: pyaml.arrays.bpm
     name: BPM
     elements:

From f93d72272d4d49a15ca2154e305f4cb3c52b6677 Mon Sep 17 00:00:00 2001
From: PONS <pons@esrf.fr>
Date: Tue, 10 Mar 2026 13:43:08 +0100
Subject: [PATCH 07/11] Removed unused declarations

---
 pyaml/common/element_holder.py | 10 ----------
 1 file changed, 10 deletions(-)

diff --git a/pyaml/common/element_holder.py b/pyaml/common/element_holder.py
index f5b1d3bea..54b94434c 100644
--- a/pyaml/common/element_holder.py
+++ b/pyaml/common/element_holder.py
@@ -35,16 +35,6 @@ class ElementHolder(object):
     simulators and control system
     """
 
-    __MAGNETS: dict[str, Magnet]
-    __CFM_MAGNETS: dict[str, CombinedFunctionMagnet]
-    __SERIALIZED_MAGNETS: dict[str, SerializedMagnets]
-    __BPMS: dict[str, BPM]
-    __RFPLANT: dict[str, RFPlant]
-    __RFTRANSMITTER: dict[str, RFTransmitter]
-    __DIAG: dict[str, Element]
-    __TUNING_TOOLS: dict[str, Element]
-    __ALL: dict[str, Element]
-
     def __init__(self):
         # Device handle
         self.__MAGNETS: dict[str, Magnet] = {}

From 6e4ffd73360081daf1a3a5040619d18d560a26e3 Mon Sep 17 00:00:00 2001
From: PONS <pons@esrf.fr>
Date: Tue, 10 Mar 2026 14:03:28 +0100
Subject: [PATCH 08/11] Restored order of devices

---
 pyaml/common/element_holder.py | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/pyaml/common/element_holder.py b/pyaml/common/element_holder.py
index 54b94434c..5b345ebdf 100644
--- a/pyaml/common/element_holder.py
+++ b/pyaml/common/element_holder.py
@@ -92,6 +92,7 @@ def fill_array(
         constructor,
         ARR: dict,
     ):
+        # Handle wildcard, regexp and exclusion pattern
         all_names: list[str] = []
         excluded_names: list[str] = []
         for name in element_names:
@@ -104,9 +105,6 @@ def fill_array(
 
         [all_names.remove(name) for name in excluded_names]
 
-        order = {elem_name: i for i, elem_name in enumerate(self.__ALL.keys())}
-        all_names = sorted(all_names, key=lambda num: order[num])
-
         a = []
         for n in all_names:
             try:

From 665f41d8db811f70940a80f7a27bb73bbf0f60c3 Mon Sep 17 00:00:00 2001
From: PONS <pons@esrf.fr>
Date: Tue, 10 Mar 2026 14:04:12 +0100
Subject: [PATCH 09/11] Restored initial tests

---
 tests/test_arrays.py        | 6 +++---
 tests/test_tune_hardware.py | 5 ++---
 2 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/tests/test_arrays.py b/tests/test_arrays.py
index 4b921b403..37b70365a 100644
--- a/tests/test_arrays.py
+++ b/tests/test_arrays.py
@@ -99,8 +99,8 @@ def test_arrays(install_test_package):
 
     strHV = sr.live.get_magnets("HVCORR").strengths.get()
     assert np.abs(strHV[0] - 0.000010) < 1e-10
-    assert np.abs(strHV[1] - 0.000015) < 1e-10
-    assert np.abs(strHV[2] + 0.000008) < 1e-10
+    assert np.abs(strHV[1] + 0.000008) < 1e-10
+    assert np.abs(strHV[2] - 0.000015) < 1e-10
     assert np.abs(strHV[3] + 0.000017) < 1e-10
 
     # Reset to 0
@@ -122,7 +122,7 @@ def test_arrays(install_test_package):
     for m in sr.live.get_magnets("HVCORR"):
         mags.append(m)
     array = MagnetArray("HVCOOR_noagg", mags, use_aggregator=False)
-    array.strengths.set([0.000010, 0.000015, -0.000008, -0.000017])
+    array.strengths.set([0.000010, -0.000008, 0.000015, -0.000017])
     ps1 = sr.live.get_cfm_magnet("SH1A-C01").hardwares.get()
     ps2 = sr.live.get_cfm_magnet("SH1A-C02").hardwares.get()
     assert np.abs(ps1[0] - 0.02956737880874648) < 1e-10
diff --git a/tests/test_tune_hardware.py b/tests/test_tune_hardware.py
index 8b384dc73..d5b9529e4 100644
--- a/tests/test_tune_hardware.py
+++ b/tests/test_tune_hardware.py
@@ -38,9 +38,8 @@ def test_tune():
     newTune = tune_monitor.tune.get()
     units = quadForTuneDesign.hardwares.unit()
     diffTune = newTune - tune
-
     assert np.abs(diffTune[0] - 0.1) < 1e-3
     assert np.abs(diffTune[1] - 0.05) < 1.1e-3
-    assert np.abs(currents[62] - 88.04522942) < 1e-8
-    assert np.abs(currents[63] - 88.26677735) < 1e-8
+    assert np.abs(currents[0] - 88.04522942) < 1e-8
+    assert np.abs(currents[1] - 88.26677735) < 1e-8
     assert units[0] == "A" and units[1] == "A"

From cfa36e485b0b0f1e9b9610818158dad6d6d4ca49 Mon Sep 17 00:00:00 2001
From: PONS <pons@esrf.fr>
Date: Tue, 10 Mar 2026 14:26:38 +0100
Subject: [PATCH 10/11] Restored fileloader.py

---
 pyaml/configuration/fileloader.py | 92 ++++---------------------------
 1 file changed, 12 insertions(+), 80 deletions(-)

diff --git a/pyaml/configuration/fileloader.py b/pyaml/configuration/fileloader.py
index 7b8ee01b5..6df60c1d0 100644
--- a/pyaml/configuration/fileloader.py
+++ b/pyaml/configuration/fileloader.py
@@ -4,7 +4,6 @@
 import json
 import logging
 import os
-import textwrap
 from pathlib import Path
 from typing import TYPE_CHECKING, Union
 
@@ -13,6 +12,8 @@
 from yaml.constructor import ConstructorError
 from yaml.loader import SafeLoader
 
+from pyaml.configuration.factory import Factory
+
 from .. import PyAMLException
 
 if TYPE_CHECKING:
@@ -23,7 +24,6 @@
 
 accepted_suffixes = [".yaml", ".yml", ".json"]
 FILE_PREFIX = "file:"
-elements_code_tag = "elements_code"
 
 ROOT = {"path": Path.cwd().resolve()}
 
@@ -88,44 +88,6 @@ def hasToLoad(value):
     )
 
 
-# Expand condition for dynamic code execution
-def has_to_execute(key: str, value):
-    """
-    Return True if the current dict entry corresponds to executable code.
-
-    The execution is triggered only when:
-    - the key is exactly "elements_code"
-    - the value is a string (code snippet)
-
-    This keeps behavior explicit and avoids accidental execution.
-    """
-    return key == elements_code_tag and isinstance(value, str)
-
-
-def execute_configuration_code(code: str):
-    clean_code = textwrap.dedent(code).strip()
-    wrapped = "def _f():\n" + textwrap.indent(clean_code.strip(), "    ")
-    compiled = compile(wrapped, "<string>", "exec")
-
-    ns = {}
-    exec(compiled, ns)
-
-    return ns["_f"]()
-
-
-def extract_location(d: dict, key: str) -> str:
-    location = d.pop("__location__", None)
-    field_locations = d.pop("__fieldlocations__", None)
-    location_str = ""
-    if location:
-        file, line, col = location
-        if field_locations and key in field_locations:
-            location = field_locations[key]
-            file, line, col = location
-        location_str = f" in {file} at line {line}, column {col}"
-    return location_str
-
-
 # Loader base class (nested files expansion)
 class Loader:
     def __init__(self, filename: str, parent_path_stack: list[Path]):
@@ -150,23 +112,18 @@ def expand_dict(self, d: dict):
                         d[key] = str(get_root_folder() / Path(stripped_value))
                     else:
                         d[key] = load(value, self.files_stack, self.use_fast_loader)
-                elif has_to_execute(key, value):
-                    exec_result = execute_configuration_code(value)
-                    d.pop(key, None)
-                    if isinstance(exec_result, dict):
-                        self.expand(exec_result)
-                        d.update(exec_result)
-                    else:
-                        location_str = extract_location(d, key)
-                        raise PyAMLException(
-                            f"The type returned by an elements_code"
-                            f" block was of type {type(exec_result)}"
-                            f" while a dict was expected{location_str}"
-                        )
                 else:
                     self.expand(value)
             except PyAMLConfigCyclingException as pyaml_ex:
-                location_str = extract_location(d, key)
+                location = d.pop("__location__", None)
+                field_locations = d.pop("__fieldlocations__", None)
+                location_str = ""
+                if location:
+                    file, line, col = location
+                    if field_locations and key in field_locations:
+                        location = field_locations[key]
+                        file, line, col = location
+                    location_str = f" in {file} at line {line}, column {col}"
                 raise PyAMLException(
                     "Circular file inclusion "
                     f"of {pyaml_ex.error_filename}{location_str}"
@@ -174,37 +131,12 @@ def expand_dict(self, d: dict):
 
     # Recursively expand a list
     def expand_list(self, l: list):
-        idx = 0
-        while idx < len(l):
-            value = l[idx]
-
-            # Special case: list item is a pure code-macro dict {"elements_code": "..."}
-            if isinstance(value, dict) and elements_code_tag in value.keys():
-                result = execute_configuration_code(value[elements_code_tag])
-
-                if isinstance(result, list):
-                    # Replace the macro item with all generated items
-                    l[idx : idx + 1] = result
-                    # Expand each inserted item
-                    for j in range(idx, idx + len(result)):
-                        self.expand(l[j])
-                    idx += len(result)
-                else:
-                    # It should be a dict, but we accept everything as a custom
-                    # strategy can be used.
-                    l[idx] = result
-                    self.expand(l[idx])
-                    idx += 1
-                continue
-
-            # Default behavior
+        for idx, value in enumerate(l):
             if hasToLoad(value):
                 l[idx] = load(value, self.files_stack)
             else:
                 self.expand(value)
 
-            idx += 1
-
     # Recursively expand an object
     def expand(self, obj: Union[dict, list]):
         if isinstance(obj, dict):

From 0c98c3e1204efcefa68f5238575b51d4f5797f13 Mon Sep 17 00:00:00 2001
From: PONS <pons@esrf.fr>
Date: Tue, 10 Mar 2026 14:27:04 +0100
Subject: [PATCH 11/11] Restored EBSOrbit.yaml

---
 tests/config/EBSOrbit.yaml | 3864 +++++++++++++++++++++++++++++++++++-
 1 file changed, 3841 insertions(+), 23 deletions(-)

diff --git a/tests/config/EBSOrbit.yaml b/tests/config/EBSOrbit.yaml
index 0b7cb4df0..466de1a97 100644
--- a/tests/config/EBSOrbit.yaml
+++ b/tests/config/EBSOrbit.yaml
@@ -27,8 +27,7 @@ arrays:
   - type: pyaml.arrays.bpm
     name: BPM
     elements:
-      - re:^BPM_C(0[4-9]|1[0-9]|2[0-9]|3[0-2]).*$
-      - re:^BPM_C(0[1-3]).*$
+      - BPM*
 devices:
 - type: pyaml.diagnostics.tune_monitor
   name: BETATRON_TUNE
@@ -7677,24 +7676,3843 @@ devices:
       - type: tango.pyaml.attribute
         attribute: srmag/ps-corr-sh3/c03-e-ch6/current
         unit: A
-- elements_code: |
-    out:list[dict] = []
-    ranges = [(4,33), (1,4)]
-    for r in ranges:
-        for cell in range(r[0], r[1]):
-            for elem in range(1, 11):
-                bpm = {"type": "pyaml.bpm.bpm",
-                    "name": f"BPM_C{cell:02d}-{elem:02d}",
-                    "model": {"type": "pyaml.bpm.bpm_simple_model",
-                              "x_pos": { "type": "tango.pyaml.attribute_read_only",
-                                         "attribute": f"srdiag/bpm/c{cell:02d}-{elem:02d}/SA_HPosition",
-                                         "unit": "m",
-                                         },
-                              "y_pos": {"type": "tango.pyaml.attribute_read_only",
-                                        "attribute": f"srdiag/bpm/c{cell:02d}-{elem:02d}/SA_VPosition",
-                                        "unit": "m",
-                                        },
-                              }
-                    }
-                out.append(bpm)
-    return out
+- type: pyaml.bpm.bpm
+  name: BPM_C04-01
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c04-01/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c04-01/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C04-02
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c04-02/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c04-02/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C04-03
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c04-03/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c04-03/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C04-04
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c04-04/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c04-04/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C04-05
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c04-05/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c04-05/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C04-06
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c04-06/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c04-06/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C04-07
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c04-07/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c04-07/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C04-08
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c04-08/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c04-08/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C04-09
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c04-09/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c04-09/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C04-10
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c04-10/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c04-10/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C05-01
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c05-01/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c05-01/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C05-02
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c05-02/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c05-02/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C05-03
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c05-03/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c05-03/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C05-04
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c05-04/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c05-04/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C05-05
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c05-05/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c05-05/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C05-06
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c05-06/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c05-06/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C05-07
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c05-07/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c05-07/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C05-08
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c05-08/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c05-08/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C05-09
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c05-09/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c05-09/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C05-10
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c05-10/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c05-10/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C06-01
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c06-01/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c06-01/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C06-02
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c06-02/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c06-02/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C06-03
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c06-03/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c06-03/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C06-04
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c06-04/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c06-04/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C06-05
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c06-05/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c06-05/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C06-06
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c06-06/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c06-06/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C06-07
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c06-07/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c06-07/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C06-08
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c06-08/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c06-08/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C06-09
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c06-09/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c06-09/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C06-10
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c06-10/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c06-10/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C07-01
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c07-01/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c07-01/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C07-02
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c07-02/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c07-02/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C07-03
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c07-03/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c07-03/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C07-04
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c07-04/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c07-04/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C07-05
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c07-05/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c07-05/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C07-06
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c07-06/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c07-06/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C07-07
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c07-07/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c07-07/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C07-08
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c07-08/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c07-08/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C07-09
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c07-09/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c07-09/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C07-10
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c07-10/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c07-10/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C08-01
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c08-01/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c08-01/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C08-02
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c08-02/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c08-02/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C08-03
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c08-03/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c08-03/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C08-04
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c08-04/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c08-04/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C08-05
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c08-05/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c08-05/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C08-06
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c08-06/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c08-06/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C08-07
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c08-07/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c08-07/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C08-08
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c08-08/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c08-08/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C08-09
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c08-09/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c08-09/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C08-10
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c08-10/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c08-10/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C09-01
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c09-01/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c09-01/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C09-02
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c09-02/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c09-02/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C09-03
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c09-03/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c09-03/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C09-04
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c09-04/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c09-04/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C09-05
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c09-05/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c09-05/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C09-06
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c09-06/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c09-06/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C09-07
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c09-07/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c09-07/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C09-08
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c09-08/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c09-08/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C09-09
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c09-09/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c09-09/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C09-10
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c09-10/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c09-10/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C10-01
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c10-01/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c10-01/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C10-02
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c10-02/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c10-02/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C10-03
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c10-03/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c10-03/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C10-04
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c10-04/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c10-04/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C10-05
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c10-05/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c10-05/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C10-06
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c10-06/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c10-06/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C10-07
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c10-07/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c10-07/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C10-08
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c10-08/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c10-08/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C10-09
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c10-09/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c10-09/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C10-10
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c10-10/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c10-10/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C11-01
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c11-01/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c11-01/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C11-02
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c11-02/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c11-02/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C11-03
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c11-03/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c11-03/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C11-04
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c11-04/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c11-04/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C11-05
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c11-05/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c11-05/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C11-06
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c11-06/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c11-06/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C11-07
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c11-07/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c11-07/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C11-08
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c11-08/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c11-08/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C11-09
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c11-09/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c11-09/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C11-10
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c11-10/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c11-10/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C12-01
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c12-01/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c12-01/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C12-02
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c12-02/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c12-02/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C12-03
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c12-03/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c12-03/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C12-04
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c12-04/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c12-04/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C12-05
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c12-05/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c12-05/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C12-06
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c12-06/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c12-06/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C12-07
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c12-07/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c12-07/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C12-08
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c12-08/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c12-08/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C12-09
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c12-09/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c12-09/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C12-10
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c12-10/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c12-10/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C13-01
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c13-01/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c13-01/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C13-02
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c13-02/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c13-02/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C13-03
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c13-03/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c13-03/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C13-04
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c13-04/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c13-04/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C13-05
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c13-05/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c13-05/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C13-06
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c13-06/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c13-06/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C13-07
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c13-07/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c13-07/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C13-08
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c13-08/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c13-08/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C13-09
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c13-09/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c13-09/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C13-10
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c13-10/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c13-10/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C14-01
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c14-01/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c14-01/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C14-02
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c14-02/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c14-02/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C14-03
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c14-03/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c14-03/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C14-04
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c14-04/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c14-04/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C14-05
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c14-05/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c14-05/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C14-06
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c14-06/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c14-06/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C14-07
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c14-07/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c14-07/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C14-08
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c14-08/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c14-08/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C14-09
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c14-09/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c14-09/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C14-10
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c14-10/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c14-10/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C15-01
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c15-01/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c15-01/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C15-02
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c15-02/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c15-02/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C15-03
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c15-03/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c15-03/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C15-04
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c15-04/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c15-04/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C15-05
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c15-05/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c15-05/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C15-06
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c15-06/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c15-06/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C15-07
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c15-07/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c15-07/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C15-08
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c15-08/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c15-08/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C15-09
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c15-09/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c15-09/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C15-10
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c15-10/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c15-10/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C16-01
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c16-01/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c16-01/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C16-02
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c16-02/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c16-02/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C16-03
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c16-03/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c16-03/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C16-04
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c16-04/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c16-04/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C16-05
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c16-05/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c16-05/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C16-06
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c16-06/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c16-06/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C16-07
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c16-07/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c16-07/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C16-08
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c16-08/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c16-08/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C16-09
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c16-09/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c16-09/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C16-10
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c16-10/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c16-10/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C17-01
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c17-01/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c17-01/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C17-02
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c17-02/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c17-02/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C17-03
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c17-03/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c17-03/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C17-04
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c17-04/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c17-04/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C17-05
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c17-05/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c17-05/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C17-06
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c17-06/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c17-06/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C17-07
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c17-07/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c17-07/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C17-08
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c17-08/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c17-08/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C17-09
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c17-09/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c17-09/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C17-10
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c17-10/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c17-10/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C18-01
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c18-01/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c18-01/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C18-02
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c18-02/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c18-02/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C18-03
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c18-03/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c18-03/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C18-04
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c18-04/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c18-04/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C18-05
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c18-05/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c18-05/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C18-06
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c18-06/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c18-06/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C18-07
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c18-07/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c18-07/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C18-08
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c18-08/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c18-08/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C18-09
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c18-09/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c18-09/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C18-10
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c18-10/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c18-10/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C19-01
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c19-01/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c19-01/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C19-02
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c19-02/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c19-02/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C19-03
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c19-03/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c19-03/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C19-04
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c19-04/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c19-04/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C19-05
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c19-05/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c19-05/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C19-06
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c19-06/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c19-06/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C19-07
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c19-07/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c19-07/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C19-08
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c19-08/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c19-08/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C19-09
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c19-09/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c19-09/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C19-10
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c19-10/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c19-10/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C20-01
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c20-01/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c20-01/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C20-02
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c20-02/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c20-02/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C20-03
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c20-03/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c20-03/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C20-04
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c20-04/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c20-04/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C20-05
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c20-05/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c20-05/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C20-06
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c20-06/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c20-06/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C20-07
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c20-07/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c20-07/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C20-08
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c20-08/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c20-08/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C20-09
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c20-09/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c20-09/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C20-10
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c20-10/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c20-10/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C21-01
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c21-01/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c21-01/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C21-02
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c21-02/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c21-02/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C21-03
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c21-03/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c21-03/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C21-04
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c21-04/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c21-04/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C21-05
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c21-05/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c21-05/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C21-06
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c21-06/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c21-06/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C21-07
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c21-07/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c21-07/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C21-08
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c21-08/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c21-08/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C21-09
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c21-09/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c21-09/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C21-10
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c21-10/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c21-10/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C22-01
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c22-01/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c22-01/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C22-02
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c22-02/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c22-02/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C22-03
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c22-03/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c22-03/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C22-04
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c22-04/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c22-04/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C22-05
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c22-05/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c22-05/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C22-06
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c22-06/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c22-06/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C22-07
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c22-07/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c22-07/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C22-08
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c22-08/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c22-08/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C22-09
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c22-09/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c22-09/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C22-10
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c22-10/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c22-10/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C23-01
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c23-01/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c23-01/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C23-02
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c23-02/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c23-02/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C23-03
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c23-03/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c23-03/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C23-04
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c23-04/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c23-04/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C23-05
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c23-05/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c23-05/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C23-06
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c23-06/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c23-06/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C23-07
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c23-07/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c23-07/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C23-08
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c23-08/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c23-08/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C23-09
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c23-09/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c23-09/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C23-10
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c23-10/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c23-10/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C24-01
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c24-01/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c24-01/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C24-02
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c24-02/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c24-02/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C24-03
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c24-03/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c24-03/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C24-04
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c24-04/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c24-04/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C24-05
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c24-05/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c24-05/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C24-06
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c24-06/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c24-06/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C24-07
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c24-07/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c24-07/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C24-08
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c24-08/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c24-08/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C24-09
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c24-09/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c24-09/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C24-10
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c24-10/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c24-10/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C25-01
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c25-01/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c25-01/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C25-02
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c25-02/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c25-02/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C25-03
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c25-03/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c25-03/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C25-04
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c25-04/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c25-04/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C25-05
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c25-05/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c25-05/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C25-06
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c25-06/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c25-06/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C25-07
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c25-07/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c25-07/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C25-08
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c25-08/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c25-08/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C25-09
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c25-09/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c25-09/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C25-10
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c25-10/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c25-10/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C26-01
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c26-01/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c26-01/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C26-02
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c26-02/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c26-02/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C26-03
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c26-03/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c26-03/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C26-04
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c26-04/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c26-04/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C26-05
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c26-05/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c26-05/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C26-06
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c26-06/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c26-06/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C26-07
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c26-07/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c26-07/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C26-08
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c26-08/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c26-08/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C26-09
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c26-09/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c26-09/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C26-10
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c26-10/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c26-10/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C27-01
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c27-01/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c27-01/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C27-02
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c27-02/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c27-02/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C27-03
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c27-03/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c27-03/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C27-04
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c27-04/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c27-04/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C27-05
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c27-05/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c27-05/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C27-06
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c27-06/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c27-06/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C27-07
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c27-07/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c27-07/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C27-08
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c27-08/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c27-08/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C27-09
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c27-09/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c27-09/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C27-10
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c27-10/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c27-10/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C28-01
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c28-01/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c28-01/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C28-02
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c28-02/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c28-02/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C28-03
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c28-03/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c28-03/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C28-04
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c28-04/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c28-04/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C28-05
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c28-05/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c28-05/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C28-06
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c28-06/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c28-06/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C28-07
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c28-07/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c28-07/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C28-08
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c28-08/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c28-08/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C28-09
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c28-09/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c28-09/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C28-10
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c28-10/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c28-10/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C29-01
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c29-01/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c29-01/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C29-02
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c29-02/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c29-02/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C29-03
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c29-03/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c29-03/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C29-04
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c29-04/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c29-04/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C29-05
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c29-05/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c29-05/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C29-06
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c29-06/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c29-06/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C29-07
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c29-07/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c29-07/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C29-08
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c29-08/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c29-08/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C29-09
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c29-09/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c29-09/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C29-10
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c29-10/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c29-10/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C30-01
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c30-01/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c30-01/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C30-02
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c30-02/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c30-02/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C30-03
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c30-03/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c30-03/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C30-04
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c30-04/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c30-04/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C30-05
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c30-05/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c30-05/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C30-06
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c30-06/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c30-06/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C30-07
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c30-07/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c30-07/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C30-08
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c30-08/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c30-08/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C30-09
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c30-09/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c30-09/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C30-10
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c30-10/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c30-10/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C31-01
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c31-01/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c31-01/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C31-02
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c31-02/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c31-02/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C31-03
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c31-03/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c31-03/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C31-04
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c31-04/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c31-04/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C31-05
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c31-05/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c31-05/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C31-06
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c31-06/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c31-06/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C31-07
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c31-07/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c31-07/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C31-08
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c31-08/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c31-08/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C31-09
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c31-09/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c31-09/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C31-10
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c31-10/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c31-10/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C32-01
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c32-01/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c32-01/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C32-02
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c32-02/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c32-02/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C32-03
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c32-03/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c32-03/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C32-04
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c32-04/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c32-04/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C32-05
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c32-05/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c32-05/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C32-06
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c32-06/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c32-06/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C32-07
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c32-07/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c32-07/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C32-08
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c32-08/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c32-08/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C32-09
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c32-09/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c32-09/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C32-10
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c32-10/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c32-10/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C01-01
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c01-01/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c01-01/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C01-02
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c01-02/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c01-02/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C01-03
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c01-03/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c01-03/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C01-04
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c01-04/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c01-04/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C01-05
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c01-05/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c01-05/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C01-06
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c01-06/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c01-06/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C01-07
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c01-07/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c01-07/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C01-08
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c01-08/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c01-08/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C01-09
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c01-09/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c01-09/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C01-10
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c01-10/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c01-10/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C02-01
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c02-01/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c02-01/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C02-02
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c02-02/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c02-02/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C02-03
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c02-03/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c02-03/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C02-04
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c02-04/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c02-04/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C02-05
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c02-05/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c02-05/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C02-06
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c02-06/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c02-06/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C02-07
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c02-07/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c02-07/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C02-08
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c02-08/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c02-08/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C02-09
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c02-09/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c02-09/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C02-10
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c02-10/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c02-10/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C03-01
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c03-01/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c03-01/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C03-02
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c03-02/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c03-02/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C03-03
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c03-03/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c03-03/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C03-04
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c03-04/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c03-04/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C03-05
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c03-05/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c03-05/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C03-06
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c03-06/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c03-06/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C03-07
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c03-07/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c03-07/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C03-08
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c03-08/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c03-08/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C03-09
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c03-09/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c03-09/SA_VPosition
+      unit: m
+- type: pyaml.bpm.bpm
+  name: BPM_C03-10
+  model:
+    type: pyaml.bpm.bpm_simple_model
+    x_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c03-10/SA_HPosition
+      unit: m
+    y_pos:
+      type: tango.pyaml.attribute_read_only
+      attribute: srdiag/bpm/c03-10/SA_VPosition
+      unit: m
