fix: replaced outdated enable_set by read_only
This commit is contained in:
parent
8fe8aa0ec7
commit
f91d0c482d
@ -126,9 +126,9 @@ class RtFlomniController(RtController):
|
|||||||
)
|
)
|
||||||
|
|
||||||
if not np.isclose(fsamx.obj.readback.get(), fsamx_in, atol=0.01):
|
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.obj.move(fsamx_in, wait=True)
|
||||||
fsamx.enabled_set = False
|
fsamx.read_only = True
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
|
|
||||||
self.socket_put("l1")
|
self.socket_put("l1")
|
||||||
@ -169,13 +169,13 @@ class RtFlomniController(RtController):
|
|||||||
wait_on_exit = True
|
wait_on_exit = True
|
||||||
self.socket_put("v0")
|
self.socket_put("v0")
|
||||||
fsamx = self.get_device_manager().devices.fsamx
|
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.controller.socket_put_confirmed("axspeed[4]=0.1*stppermm[4]")
|
||||||
fsamx.obj.pid_x_correction -= (self.get_pid_x() - expected_voltage) * 0.007
|
fsamx.obj.pid_x_correction -= (self.get_pid_x() - expected_voltage) * 0.007
|
||||||
logger.info(f"Correcting fsamx by {fsamx.obj.pid_x_correction}")
|
logger.info(f"Correcting fsamx by {fsamx.obj.pid_x_correction}")
|
||||||
fsamx_in = fsamx.user_parameter.get("in")
|
fsamx_in = fsamx.user_parameter.get("in")
|
||||||
fsamx.obj.move(fsamx_in + cenx / 1000 + fsamx.obj.pid_x_correction, wait=True)
|
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)
|
time.sleep(0.1)
|
||||||
self.laser_tracker_on()
|
self.laser_tracker_on()
|
||||||
time.sleep(0.01)
|
time.sleep(0.01)
|
||||||
|
@ -3,7 +3,7 @@ import threading
|
|||||||
import time
|
import time
|
||||||
|
|
||||||
import numpy as np
|
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 Component as Cpt
|
||||||
from ophyd import Device, PositionerBase, Signal
|
from ophyd import Device, PositionerBase, Signal
|
||||||
from ophyd.status import wait as status_wait
|
from ophyd.status import wait as status_wait
|
||||||
@ -435,8 +435,7 @@ class RtLamniController(Controller):
|
|||||||
self.get_device_manager().producer.send(
|
self.get_device_manager().producer.send(
|
||||||
MessageEndpoints.device_read("rt_lamni"),
|
MessageEndpoints.device_read("rt_lamni"),
|
||||||
messages.DeviceMessage(
|
messages.DeviceMessage(
|
||||||
signals=signals,
|
signals=signals, metadata={"pointID": pointID, **self.readout_metadata}
|
||||||
metadata={"pointID": pointID, **self.readout_metadata},
|
|
||||||
).dumps(),
|
).dumps(),
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -532,7 +531,7 @@ class RtLamniController(Controller):
|
|||||||
f"Device {device_name} is not configured and cannot be enabled/disabled."
|
f"Device {device_name} is not configured and cannot be enabled/disabled."
|
||||||
)
|
)
|
||||||
return
|
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):
|
class RtLamniSignalBase(SocketSignal):
|
||||||
@ -623,11 +622,7 @@ class RtLamniMotorIsMoving(RtLamniSignalRO):
|
|||||||
def get(self):
|
def get(self):
|
||||||
val = super().get()
|
val = super().get()
|
||||||
if val is not None:
|
if val is not None:
|
||||||
self._run_subs(
|
self._run_subs(sub_type=self.SUB_VALUE, value=val, timestamp=time.time())
|
||||||
sub_type=self.SUB_VALUE,
|
|
||||||
value=val,
|
|
||||||
timestamp=time.time(),
|
|
||||||
)
|
|
||||||
return val
|
return val
|
||||||
|
|
||||||
|
|
||||||
@ -642,11 +637,7 @@ class RtLamniFeedbackRunning(RtLamniSignalRO):
|
|||||||
|
|
||||||
class RtLamniMotor(Device, PositionerBase):
|
class RtLamniMotor(Device, PositionerBase):
|
||||||
USER_ACCESS = ["controller"]
|
USER_ACCESS = ["controller"]
|
||||||
readback = Cpt(
|
readback = Cpt(RtLamniReadbackSignal, signal_name="readback", kind="hinted")
|
||||||
RtLamniReadbackSignal,
|
|
||||||
signal_name="readback",
|
|
||||||
kind="hinted",
|
|
||||||
)
|
|
||||||
user_setpoint = Cpt(RtLamniSetpointSignal, signal_name="setpoint")
|
user_setpoint = Cpt(RtLamniSetpointSignal, signal_name="setpoint")
|
||||||
|
|
||||||
motor_is_moving = Cpt(RtLamniMotorIsMoving, signal_name="motor_is_moving", kind="normal")
|
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():
|
while self.motor_is_moving.get():
|
||||||
print("motor is moving")
|
print("motor is moving")
|
||||||
val = self.readback.read()
|
val = self.readback.read()
|
||||||
self._run_subs(
|
self._run_subs(sub_type=self.SUB_READBACK, value=val, timestamp=time.time())
|
||||||
sub_type=self.SUB_READBACK,
|
|
||||||
value=val,
|
|
||||||
timestamp=time.time(),
|
|
||||||
)
|
|
||||||
time.sleep(0.01)
|
time.sleep(0.01)
|
||||||
print("Move finished")
|
print("Move finished")
|
||||||
self._done_moving()
|
self._done_moving()
|
||||||
|
@ -405,8 +405,7 @@ class RtController(Controller):
|
|||||||
self.get_device_manager().producer.send(
|
self.get_device_manager().producer.send(
|
||||||
MessageEndpoints.device_read("rt_lamni"),
|
MessageEndpoints.device_read("rt_lamni"),
|
||||||
messages.DeviceMessage(
|
messages.DeviceMessage(
|
||||||
signals=signals,
|
signals=signals, metadata={"pointID": pointID, **self.readout_metadata}
|
||||||
metadata={"pointID": pointID, **self.readout_metadata},
|
|
||||||
).dumps(),
|
).dumps(),
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -502,7 +501,7 @@ class RtController(Controller):
|
|||||||
f"Device {device_name} is not configured and cannot be enabled/disabled."
|
f"Device {device_name} is not configured and cannot be enabled/disabled."
|
||||||
)
|
)
|
||||||
return
|
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):
|
class RtSignalBase(SocketSignal):
|
||||||
@ -593,11 +592,7 @@ class RtMotorIsMoving(RtSignalRO):
|
|||||||
def get(self):
|
def get(self):
|
||||||
val = super().get()
|
val = super().get()
|
||||||
if val is not None:
|
if val is not None:
|
||||||
self._run_subs(
|
self._run_subs(sub_type=self.SUB_VALUE, value=val, timestamp=time.time())
|
||||||
sub_type=self.SUB_VALUE,
|
|
||||||
value=val,
|
|
||||||
timestamp=time.time(),
|
|
||||||
)
|
|
||||||
return val
|
return val
|
||||||
|
|
||||||
|
|
||||||
@ -612,11 +607,7 @@ class RtFeedbackRunning(RtSignalRO):
|
|||||||
|
|
||||||
class RtMotor(Device, PositionerBase):
|
class RtMotor(Device, PositionerBase):
|
||||||
USER_ACCESS = ["controller"]
|
USER_ACCESS = ["controller"]
|
||||||
readback = Cpt(
|
readback = Cpt(RtReadbackSignal, signal_name="readback", kind="hinted")
|
||||||
RtReadbackSignal,
|
|
||||||
signal_name="readback",
|
|
||||||
kind="hinted",
|
|
||||||
)
|
|
||||||
user_setpoint = Cpt(RtSetpointSignal, signal_name="setpoint")
|
user_setpoint = Cpt(RtSetpointSignal, signal_name="setpoint")
|
||||||
|
|
||||||
motor_is_moving = Cpt(RtMotorIsMoving, signal_name="motor_is_moving", kind="normal")
|
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():
|
while self.motor_is_moving.get():
|
||||||
print("motor is moving")
|
print("motor is moving")
|
||||||
val = self.readback.read()
|
val = self.readback.read()
|
||||||
self._run_subs(
|
self._run_subs(sub_type=self.SUB_READBACK, value=val, timestamp=time.time())
|
||||||
sub_type=self.SUB_READBACK,
|
|
||||||
value=val,
|
|
||||||
timestamp=time.time(),
|
|
||||||
)
|
|
||||||
time.sleep(0.01)
|
time.sleep(0.01)
|
||||||
print("Move finished")
|
print("Move finished")
|
||||||
self._done_moving()
|
self._done_moving()
|
||||||
|
@ -2,12 +2,10 @@ import time
|
|||||||
|
|
||||||
from bec_lib import bec_logger
|
from bec_lib import bec_logger
|
||||||
from bec_lib.devicemanager import DeviceContainer
|
from bec_lib.devicemanager import DeviceContainer
|
||||||
|
from ophyd import Kind, Signal
|
||||||
from ophyd import Signal, Kind
|
|
||||||
|
|
||||||
from ophyd_devices.utils.socket import data_shape, data_type
|
from ophyd_devices.utils.socket import data_shape, data_type
|
||||||
|
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
DEFAULT_EPICSSIGNAL_VALUE = object()
|
DEFAULT_EPICSSIGNAL_VALUE = object()
|
||||||
|
|
||||||
@ -18,7 +16,7 @@ class DeviceMock:
|
|||||||
self.name = name
|
self.name = name
|
||||||
self.read_buffer = value
|
self.read_buffer = value
|
||||||
self._config = {"deviceConfig": {"limits": [-50, 50]}, "userParameter": None}
|
self._config = {"deviceConfig": {"limits": [-50, 50]}, "userParameter": None}
|
||||||
self._enabled_set = True
|
self._read_only = False
|
||||||
self._enabled = True
|
self._enabled = True
|
||||||
|
|
||||||
def read(self):
|
def read(self):
|
||||||
@ -28,12 +26,12 @@ class DeviceMock:
|
|||||||
return self.read_buffer
|
return self.read_buffer
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def enabled_set(self) -> bool:
|
def read_only(self) -> bool:
|
||||||
return self._enabled_set
|
return self._read_only
|
||||||
|
|
||||||
@enabled_set.setter
|
@read_only.setter
|
||||||
def enabled_set(self, val: bool):
|
def read_only(self, val: bool):
|
||||||
self._enabled_set = val
|
self._read_only = val
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def enabled(self) -> bool:
|
def enabled(self) -> bool:
|
||||||
@ -191,14 +189,7 @@ class ConfigSignal(Signal):
|
|||||||
self._readback = getattr(self.parent, self.storage_name)[self.name]
|
self._readback = getattr(self.parent, self.storage_name)[self.name]
|
||||||
return self._readback
|
return self._readback
|
||||||
|
|
||||||
def put(
|
def put(self, value, connection_timeout=1, callback=None, timeout=1, **kwargs):
|
||||||
self,
|
|
||||||
value,
|
|
||||||
connection_timeout=1,
|
|
||||||
callback=None,
|
|
||||||
timeout=1,
|
|
||||||
**kwargs,
|
|
||||||
):
|
|
||||||
"""Using channel access, set the write PV to `value`.
|
"""Using channel access, set the write PV to `value`.
|
||||||
|
|
||||||
Keyword arguments are passed on to callbacks
|
Keyword arguments are passed on to callbacks
|
||||||
@ -224,10 +215,7 @@ class ConfigSignal(Signal):
|
|||||||
getattr(self.parent, self.storage_name)[self.name] = value
|
getattr(self.parent, self.storage_name)[self.name] = value
|
||||||
super().put(value, timestamp=timestamp, force=True)
|
super().put(value, timestamp=timestamp, force=True)
|
||||||
self._run_subs(
|
self._run_subs(
|
||||||
sub_type=self.SUB_VALUE,
|
sub_type=self.SUB_VALUE, old_value=old_value, value=value, timestamp=timestamp
|
||||||
old_value=old_value,
|
|
||||||
value=value,
|
|
||||||
timestamp=timestamp,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
def describe(self):
|
def describe(self):
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
|
from unittest import mock
|
||||||
|
|
||||||
from bec_lib.devicemanager import DeviceContainer
|
from bec_lib.devicemanager import DeviceContainer
|
||||||
from bec_lib.tests.utils import ProducerMock
|
from bec_lib.tests.utils import ProducerMock
|
||||||
|
|
||||||
from unittest import mock
|
|
||||||
|
|
||||||
|
|
||||||
class SocketMock:
|
class SocketMock:
|
||||||
"""Socket Mock. Used for testing"""
|
"""Socket Mock. Used for testing"""
|
||||||
@ -251,7 +251,7 @@ class DeviceMock:
|
|||||||
self.name = name
|
self.name = name
|
||||||
self.read_buffer = value
|
self.read_buffer = value
|
||||||
self._config = {"deviceConfig": {"limits": [-50, 50]}, "userParameter": None}
|
self._config = {"deviceConfig": {"limits": [-50, 50]}, "userParameter": None}
|
||||||
self._enabled_set = True
|
self._read_only = False
|
||||||
self._enabled = True
|
self._enabled = True
|
||||||
|
|
||||||
def read(self):
|
def read(self):
|
||||||
@ -263,14 +263,14 @@ class DeviceMock:
|
|||||||
return self.read_buffer
|
return self.read_buffer
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def enabled_set(self) -> bool:
|
def read_only(self) -> bool:
|
||||||
"""enabled_set property"""
|
"""read only property"""
|
||||||
return self._enabled_set
|
return self._read_only
|
||||||
|
|
||||||
@enabled_set.setter
|
@read_only.setter
|
||||||
def enabled_set(self, val: bool):
|
def read_only(self, val: bool):
|
||||||
"""enabled_set setter"""
|
"""read only setter"""
|
||||||
self._enabled_set = val
|
self._read_only = val
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def enabled(self) -> bool:
|
def enabled(self) -> bool:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user