Merge branch 'master' into online_changes

This commit is contained in:
wakonig_k 2022-10-31 13:28:57 +01:00
commit ca5a03b2f1
4 changed files with 59 additions and 25 deletions

View File

@ -1,6 +1,6 @@
from .galil.galil_ophyd import GalilMotor from .galil.galil_ophyd import GalilMotor
from .npoint.npoint import NPointAxis from .npoint.npoint import NPointAxis
from .rt_lamni import RtLamniMotor 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 .sls_devices.sls_devices import SLSOperatorMessages
from .smaract.smaract_ophyd import SmaractMotor from .smaract.smaract_ophyd import SmaractMotor

View File

@ -160,11 +160,11 @@ class RtLamniController(Controller):
def feedback_disable(self): def feedback_disable(self):
self.socket_put("J0") self.socket_put("J0")
logger.info("LamNI Feedback disabled.") logger.info("LamNI Feedback disabled.")
self.get_device_manager().devices.lsamx.enabled = True self.set_device_enabled("lsamx", True)
self.get_device_manager().devices.lsamy.enabled = True self.set_device_enabled("lsamy", True)
self.get_device_manager().devices.loptx.enabled = True self.set_device_enabled("loptx", True)
self.get_device_manager().devices.lopty.enabled = True self.set_device_enabled("lopty", True)
self.get_device_manager().devices.loptz.enabled = True self.set_device_enabled("loptz", True)
@threadlocked @threadlocked
def _set_axis_velocity(self, um_per_s): def _set_axis_velocity(self, um_per_s):
@ -205,25 +205,25 @@ class RtLamniController(Controller):
# set these as closed loop target position # set these as closed loop target position
self.socket_put(f"pa0,{x_curr:.4f}") self.socket_put(f"pa0,{x_curr:.4f}")
self.socket_put(f"pa1,{y_curr:.4f}") self.socket_put(f"pa1,{y_curr:.4f}")
self.get_device_manager().devices.rtx.setpoint.set_with_feedback_disabled(x_curr) self.get_device_manager().devices.rtx.obj.user_setpoint.set_with_feedback_disabled(x_curr)
self.get_device_manager().devices.rty.setpoint.set_with_feedback_disabled(y_curr) self.get_device_manager().devices.rty.obj.user_setpoint.set_with_feedback_disabled(y_curr)
self.socket_put("J5") self.socket_put("J5")
logger.info("LamNI Feedback enabled (without reset).") logger.info("LamNI Feedback enabled (without reset).")
self.get_device_manager().devices.lsamx.enabled = False self.set_device_enabled("lsamx", False)
self.get_device_manager().devices.lsamy.enabled = False self.set_device_enabled("lsamy", False)
self.get_device_manager().devices.loptx.enabled = False self.set_device_enabled("loptx", False)
self.get_device_manager().devices.lopty.enabled = False self.set_device_enabled("lopty", False)
self.get_device_manager().devices.loptz.enabled = False self.set_device_enabled("loptz", False)
@threadlocked @threadlocked
def feedback_disable_and_even_reset_lamni_angle_interferometer(self): def feedback_disable_and_even_reset_lamni_angle_interferometer(self):
self.socket_put("J6") self.socket_put("J6")
logger.info("LamNI Feedback disabled including the angular interferometer.") logger.info("LamNI Feedback disabled including the angular interferometer.")
self.get_device_manager().devices.lsamx.enabled = True self.set_device_enabled("lsamx", True)
self.get_device_manager().devices.lsamy.enabled = True self.set_device_enabled("lsamy", True)
self.get_device_manager().devices.loptx.enabled = True self.set_device_enabled("loptx", True)
self.get_device_manager().devices.lopty.enabled = True self.set_device_enabled("lopty", True)
self.get_device_manager().devices.loptz.enabled = True self.set_device_enabled("loptz", True)
def get_device_manager(self): def get_device_manager(self):
for axis in self._axis: for axis in self._axis:
@ -474,11 +474,11 @@ class RtLamniController(Controller):
(self.socket_put_and_receive("J2")).split(",")[0] (self.socket_put_and_receive("J2")).split(",")[0]
) )
self.get_device_manager().devices.lsamx.enabled = False self.set_device_enabled("lsamx", False)
self.get_device_manager().devices.lsamy.enabled = False self.set_device_enabled("lsamy", False)
self.get_device_manager().devices.loptx.enabled = False self.set_device_enabled("loptx", False)
self.get_device_manager().devices.lopty.enabled = False self.set_device_enabled("lopty", False)
self.get_device_manager().devices.loptz.enabled = False self.set_device_enabled("loptz", False)
if interferometer_feedback_not_running == 1: if interferometer_feedback_not_running == 1:
logger.error( logger.error(
@ -492,6 +492,15 @@ class RtLamniController(Controller):
# ptychography_alignment_done = 0 # ptychography_alignment_done = 0
def set_device_enabled(self, device_name: str, enabled: bool) -> None:
"""enable / disable a device"""
if device_name not in self.get_device_manager().devices:
logger.warning(
f"Device {device_name} is not configured and cannot be enabled/disabled."
)
return
self.get_device_manager().devices[device_name].enabled_set = enabled
class RtLamniSignalBase(SocketSignal): class RtLamniSignalBase(SocketSignal):
def __init__(self, signal_name, **kwargs): def __init__(self, signal_name, **kwargs):

View File

@ -1 +1 @@
from .sim import SynAxisMonitor, SynAxisOPAAS, SynFlyer, SynSLSDetector from .sim import SynAxisMonitor, SynAxisOPAAS, SynFlyer, SynSignalRO, SynSLSDetector

View File

@ -2,7 +2,6 @@ import os
import threading import threading
import time as ttime import time as ttime
import warnings import warnings
from email.message import Message
from typing import List from typing import List
import numpy as np import numpy as np
@ -19,6 +18,22 @@ class DeviceStop(Exception):
pass 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): class _ReadbackSignal(Signal):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
@ -284,6 +299,12 @@ class DummyController:
some_var = 10 some_var = 10
another_var = 20 another_var = 20
def on(self):
self._connected = True
def off(self):
self._connected = False
def controller_show_all(self): def controller_show_all(self):
"""dummy controller show all """dummy controller show all
@ -297,6 +318,10 @@ class DummyController:
print(self.some_var) print(self.some_var)
class DummyControllerDevice(Device):
USER_ACCESS = ["controller"]
class SynFlyer(Device, PositionerBase): class SynFlyer(Device, PositionerBase):
def __init__( def __init__(
self, self,