0
0
mirror of https://github.com/bec-project/bec_widgets.git synced 2025-07-13 19:21:50 +02:00

fix(positioner_box): if possible tweak should use the current setpoint instead of the readback

This commit is contained in:
2025-03-24 15:27:32 +01:00
parent be274a10fc
commit e5c9dd288c

View File

@ -212,12 +212,34 @@ class PositionerBox(PositionerBoxBase):
@SafeSlot()
def on_tweak_right(self):
"""Tweak motor right"""
setpoint = self._get_setpoint()
if setpoint is None:
self.dev[self.device].move(self.step_size, relative=True)
return
target = setpoint + self.step_size
self.dev[self.device].move(target, relative=False)
@SafeSlot()
def on_tweak_left(self):
"""Tweak motor left"""
setpoint = self._get_setpoint()
if setpoint is None:
self.dev[self.device].move(-self.step_size, relative=True)
return
target = setpoint - self.step_size
self.dev[self.device].move(target, relative=False)
def _get_setpoint(self) -> float | None:
"""Get the setpoint of the motor"""
setpoint = getattr(self.dev[self.device], "setpoint", None)
if not setpoint:
setpoint = getattr(self.dev[self.device], "user_setpoint", None)
if not setpoint:
return None
try:
return float(setpoint.get())
except Exception:
return None
@SafeSlot()
def on_setpoint_change(self):