diff --git a/ophyd_devices/__init__.py b/ophyd_devices/__init__.py index c6527a8..b88c1f3 100644 --- a/ophyd_devices/__init__.py +++ b/ophyd_devices/__init__.py @@ -1,6 +1,6 @@ from .galil.galil_ophyd import GalilMotor from .npoint.npoint import NPointAxis from .rt_lamni import RtLamniMotor -from .sim.sim import SynAxisMonitor, SynAxisOPAAS, SynFlyer, SynSLSDetector +from .sim.sim import SynAxisMonitor, SynAxisOPAAS, SynFlyer, SynSignalRO, SynSLSDetector from .sls_devices.sls_devices import SLSOperatorMessages from .smaract.smaract_ophyd import SmaractMotor diff --git a/ophyd_devices/sim/__init__.py b/ophyd_devices/sim/__init__.py index 2fdb490..464d315 100644 --- a/ophyd_devices/sim/__init__.py +++ b/ophyd_devices/sim/__init__.py @@ -1 +1 @@ -from .sim import SynAxisMonitor, SynAxisOPAAS, SynFlyer, SynSLSDetector +from .sim import SynAxisMonitor, SynAxisOPAAS, SynFlyer, SynSignalRO, SynSLSDetector diff --git a/ophyd_devices/sim/sim.py b/ophyd_devices/sim/sim.py index eb1156a..57ec57f 100644 --- a/ophyd_devices/sim/sim.py +++ b/ophyd_devices/sim/sim.py @@ -2,7 +2,6 @@ import os import threading import time as ttime import warnings -from email.message import Message from typing import List import numpy as np @@ -19,6 +18,22 @@ class DeviceStop(Exception): pass +class SynSignalRO(Signal): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self._metadata.update( + write_access=False, + ) + + def wait_for_connection(self, timeout=0): + super().wait_for_connection(timeout) + self._metadata.update(connected=True) + + def get(self, **kwargs): + self._readback = np.random.rand() + return self._readback + + class _ReadbackSignal(Signal): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) @@ -284,6 +299,12 @@ class DummyController: some_var = 10 another_var = 20 + def on(self): + self._connected = True + + def off(self): + self._connected = False + def controller_show_all(self): """dummy controller show all @@ -297,6 +318,10 @@ class DummyController: print(self.some_var) +class DummyControllerDevice(Device): + USER_ACCESS = ["controller"] + + class SynFlyer(Device, PositionerBase): def __init__( self,