Source code for pyaml.control.deviceaccesslist

from abc import ABCMeta, abstractmethod

import numpy as np
import numpy.typing as npt

from .deviceaccess import DeviceAccess
from .readback_value import Value


[docs] class DeviceAccessList(list[DeviceAccess], metaclass=ABCMeta): """ Abstract class providing access to a list of control system float variable """
[docs] @abstractmethod def add_devices(self, devices: DeviceAccess | list[DeviceAccess]): """Add a DeviceAccess to this list""" pass
[docs] @abstractmethod def get_devices(self) -> DeviceAccess | list[DeviceAccess]: """Get the DeviceAccess list""" pass
[docs] @abstractmethod def set(self, value: npt.NDArray[np.float64]): """Write a list of control system device variable (i.e. a power supply currents)""" pass
[docs] @abstractmethod def set_and_wait(self, value: npt.NDArray[np.float64]): """Write a list control system device variable (i.e. a power supply currents)""" pass
[docs] @abstractmethod def get(self) -> npt.NDArray[np.float64]: """Return a list of setpoints of control system device variables""" pass
[docs] @abstractmethod def readback(self) -> np.array: """Return the measured variables""" pass
[docs] @abstractmethod def unit(self) -> str: """Return the variable unit""" pass
[docs] @abstractmethod def get_range(self) -> list[float]: """ Get the valid range for the device variables. Returns ------- list[float] List containing [min, max] values """ pass
[docs] @abstractmethod def check_device_availability(self) -> bool: """ Check if all devices in the list are available and accessible. Returns ------- bool True if all devices are available, False otherwise """ pass