fix: replaced outdated enable_set by read_only

This commit is contained in:
wakonig_k 2024-02-17 18:19:34 +01:00 committed by appel_c
parent 8fe8aa0ec7
commit f91d0c482d
5 changed files with 34 additions and 72 deletions

View File

@ -126,9 +126,9 @@ class RtFlomniController(RtController):
)
if not np.isclose(fsamx.obj.readback.get(), fsamx_in, atol=0.01):
fsamx.enabled_set = True
fsamx.read_only = False
fsamx.obj.move(fsamx_in, wait=True)
fsamx.enabled_set = False
fsamx.read_only = True
time.sleep(1)
self.socket_put("l1")
@ -169,13 +169,13 @@ class RtFlomniController(RtController):
wait_on_exit = True
self.socket_put("v0")
fsamx = self.get_device_manager().devices.fsamx
fsamx.enabled_set = True
fsamx.read_only = False
fsamx.obj.controller.socket_put_confirmed("axspeed[4]=0.1*stppermm[4]")
fsamx.obj.pid_x_correction -= (self.get_pid_x() - expected_voltage) * 0.007
logger.info(f"Correcting fsamx by {fsamx.obj.pid_x_correction}")
fsamx_in = fsamx.user_parameter.get("in")
fsamx.obj.move(fsamx_in + cenx / 1000 + fsamx.obj.pid_x_correction, wait=True)
fsamx.enabled_set = False
fsamx.read_only = True
time.sleep(0.1)
self.laser_tracker_on()
time.sleep(0.01)

View File

@ -3,7 +3,7 @@ import threading
import time
import numpy as np
from bec_lib import messages, MessageEndpoints, bec_logger
from bec_lib import MessageEndpoints, bec_logger, messages
from ophyd import Component as Cpt
from ophyd import Device, PositionerBase, Signal
from ophyd.status import wait as status_wait
@ -435,8 +435,7 @@ class RtLamniController(Controller):
self.get_device_manager().producer.send(
MessageEndpoints.device_read("rt_lamni"),
messages.DeviceMessage(
signals=signals,
metadata={"pointID": pointID, **self.readout_metadata},
signals=signals, metadata={"pointID": pointID, **self.readout_metadata}
).dumps(),
)
@ -532,7 +531,7 @@ class RtLamniController(Controller):
f"Device {device_name} is not configured and cannot be enabled/disabled."
)
return
self.get_device_manager().devices[device_name].enabled_set = enabled
self.get_device_manager().devices[device_name].read_only = not enabled
class RtLamniSignalBase(SocketSignal):
@ -623,11 +622,7 @@ class RtLamniMotorIsMoving(RtLamniSignalRO):
def get(self):
val = super().get()
if val is not None:
self._run_subs(
sub_type=self.SUB_VALUE,
value=val,
timestamp=time.time(),
)
self._run_subs(sub_type=self.SUB_VALUE, value=val, timestamp=time.time())
return val
@ -642,11 +637,7 @@ class RtLamniFeedbackRunning(RtLamniSignalRO):
class RtLamniMotor(Device, PositionerBase):
USER_ACCESS = ["controller"]
readback = Cpt(
RtLamniReadbackSignal,
signal_name="readback",
kind="hinted",
)
readback = Cpt(RtLamniReadbackSignal, signal_name="readback", kind="hinted")
user_setpoint = Cpt(RtLamniSetpointSignal, signal_name="setpoint")
motor_is_moving = Cpt(RtLamniMotorIsMoving, signal_name="motor_is_moving", kind="normal")
@ -769,11 +760,7 @@ class RtLamniMotor(Device, PositionerBase):
while self.motor_is_moving.get():
print("motor is moving")
val = self.readback.read()
self._run_subs(
sub_type=self.SUB_READBACK,
value=val,
timestamp=time.time(),
)
self._run_subs(sub_type=self.SUB_READBACK, value=val, timestamp=time.time())
time.sleep(0.01)
print("Move finished")
self._done_moving()

View File

@ -405,8 +405,7 @@ class RtController(Controller):
self.get_device_manager().producer.send(
MessageEndpoints.device_read("rt_lamni"),
messages.DeviceMessage(
signals=signals,
metadata={"pointID": pointID, **self.readout_metadata},
signals=signals, metadata={"pointID": pointID, **self.readout_metadata}
).dumps(),
)
@ -502,7 +501,7 @@ class RtController(Controller):
f"Device {device_name} is not configured and cannot be enabled/disabled."
)
return
self.get_device_manager().devices[device_name].enabled_set = enabled
self.get_device_manager().devices[device_name].read_only = not enabled
class RtSignalBase(SocketSignal):
@ -593,11 +592,7 @@ class RtMotorIsMoving(RtSignalRO):
def get(self):
val = super().get()
if val is not None:
self._run_subs(
sub_type=self.SUB_VALUE,
value=val,
timestamp=time.time(),
)
self._run_subs(sub_type=self.SUB_VALUE, value=val, timestamp=time.time())
return val
@ -612,11 +607,7 @@ class RtFeedbackRunning(RtSignalRO):
class RtMotor(Device, PositionerBase):
USER_ACCESS = ["controller"]
readback = Cpt(
RtReadbackSignal,
signal_name="readback",
kind="hinted",
)
readback = Cpt(RtReadbackSignal, signal_name="readback", kind="hinted")
user_setpoint = Cpt(RtSetpointSignal, signal_name="setpoint")
motor_is_moving = Cpt(RtMotorIsMoving, signal_name="motor_is_moving", kind="normal")
@ -739,11 +730,7 @@ class RtMotor(Device, PositionerBase):
while self.motor_is_moving.get():
print("motor is moving")
val = self.readback.read()
self._run_subs(
sub_type=self.SUB_READBACK,
value=val,
timestamp=time.time(),
)
self._run_subs(sub_type=self.SUB_READBACK, value=val, timestamp=time.time())
time.sleep(0.01)
print("Move finished")
self._done_moving()

View File

@ -2,12 +2,10 @@ import time
from bec_lib import bec_logger
from bec_lib.devicemanager import DeviceContainer
from ophyd import Signal, Kind
from ophyd import Kind, Signal
from ophyd_devices.utils.socket import data_shape, data_type
logger = bec_logger.logger
DEFAULT_EPICSSIGNAL_VALUE = object()
@ -18,7 +16,7 @@ class DeviceMock:
self.name = name
self.read_buffer = value
self._config = {"deviceConfig": {"limits": [-50, 50]}, "userParameter": None}
self._enabled_set = True
self._read_only = False
self._enabled = True
def read(self):
@ -28,12 +26,12 @@ class DeviceMock:
return self.read_buffer
@property
def enabled_set(self) -> bool:
return self._enabled_set
def read_only(self) -> bool:
return self._read_only
@enabled_set.setter
def enabled_set(self, val: bool):
self._enabled_set = val
@read_only.setter
def read_only(self, val: bool):
self._read_only = val
@property
def enabled(self) -> bool:
@ -191,14 +189,7 @@ class ConfigSignal(Signal):
self._readback = getattr(self.parent, self.storage_name)[self.name]
return self._readback
def put(
self,
value,
connection_timeout=1,
callback=None,
timeout=1,
**kwargs,
):
def put(self, value, connection_timeout=1, callback=None, timeout=1, **kwargs):
"""Using channel access, set the write PV to `value`.
Keyword arguments are passed on to callbacks
@ -224,10 +215,7 @@ class ConfigSignal(Signal):
getattr(self.parent, self.storage_name)[self.name] = value
super().put(value, timestamp=timestamp, force=True)
self._run_subs(
sub_type=self.SUB_VALUE,
old_value=old_value,
value=value,
timestamp=timestamp,
sub_type=self.SUB_VALUE, old_value=old_value, value=value, timestamp=timestamp
)
def describe(self):

View File

@ -1,8 +1,8 @@
from unittest import mock
from bec_lib.devicemanager import DeviceContainer
from bec_lib.tests.utils import ProducerMock
from unittest import mock
class SocketMock:
"""Socket Mock. Used for testing"""
@ -251,7 +251,7 @@ class DeviceMock:
self.name = name
self.read_buffer = value
self._config = {"deviceConfig": {"limits": [-50, 50]}, "userParameter": None}
self._enabled_set = True
self._read_only = False
self._enabled = True
def read(self):
@ -263,14 +263,14 @@ class DeviceMock:
return self.read_buffer
@property
def enabled_set(self) -> bool:
"""enabled_set property"""
return self._enabled_set
def read_only(self) -> bool:
"""read only property"""
return self._read_only
@enabled_set.setter
def enabled_set(self, val: bool):
"""enabled_set setter"""
self._enabled_set = val
@read_only.setter
def read_only(self, val: bool):
"""read only setter"""
self._read_only = val
@property
def enabled(self) -> bool: