fix(positioner_box): move via scans.mv instead of deprecated Positioner.move

This commit is contained in:
2026-10-01 13:46:40 +02:00
committed by Jan Wyzula
parent 06dcc85700
commit 0487c5d3e2
4 changed files with 29 additions and 37 deletions
@@ -223,20 +223,20 @@ class PositionerBox(PositionerBoxBase):
"""Tweak motor right"""
setpoint = self._get_setpoint()
if setpoint is None:
self.dev[self.device].move(self.step_size, relative=True)
self.scans.mv(self.dev[self.device], self.step_size, relative=True)
return
target = setpoint + self.step_size
self.dev[self.device].move(target, relative=False)
self.scans.mv(self.dev[self.device], 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)
self.scans.mv(self.dev[self.device], -self.step_size, relative=True)
return
target = setpoint - self.step_size
self.dev[self.device].move(target, relative=False)
self.scans.mv(self.dev[self.device], target, relative=False)
def _get_setpoint(self) -> float | None:
"""Get the setpoint of the motor"""
@@ -255,7 +255,7 @@ class PositionerBox(PositionerBoxBase):
"""Change the setpoint for the motor"""
self.ui.setpoint.clearFocus()
setpoint = self.ui.setpoint.text()
self.dev[self.device].move(float(setpoint), relative=False)
self.scans.mv(self.dev[self.device], float(setpoint), relative=False)
self.ui.tweak_left.setToolTip(f"Tweak left by {self.step_size}")
self.ui.tweak_right.setToolTip(f"Tweak right by {self.step_size}")
@@ -474,56 +474,56 @@ class PositionerBox2D(PositionerBoxBase):
@SafeSlot()
def on_tweak_inc_hor(self):
"""Tweak device a up"""
self.dev[self.device_hor].move(self.step_size_hor / 10, relative=True)
self.scans.mv(self.dev[self.device_hor], self.step_size_hor / 10, relative=True)
@SafeSlot()
def on_tweak_dec_hor(self):
"""Tweak device a down"""
self.dev[self.device_hor].move(-self.step_size_hor / 10, relative=True)
self.scans.mv(self.dev[self.device_hor], -self.step_size_hor / 10, relative=True)
@SafeSlot()
def on_step_inc_hor(self):
"""Tweak device a up"""
self.dev[self.device_hor].move(self.step_size_hor, relative=True)
self.scans.mv(self.dev[self.device_hor], self.step_size_hor, relative=True)
@SafeSlot()
def on_step_dec_hor(self):
"""Tweak device a down"""
self.dev[self.device_hor].move(-self.step_size_hor, relative=True)
self.scans.mv(self.dev[self.device_hor], -self.step_size_hor, relative=True)
@SafeSlot()
def on_tweak_inc_ver(self):
"""Tweak device a up"""
self.dev[self.device_ver].move(self.step_size_ver / 10, relative=True)
self.scans.mv(self.dev[self.device_ver], self.step_size_ver / 10, relative=True)
@SafeSlot()
def on_tweak_dec_ver(self):
"""Tweak device b down"""
self.dev[self.device_ver].move(-self.step_size_ver / 10, relative=True)
self.scans.mv(self.dev[self.device_ver], -self.step_size_ver / 10, relative=True)
@SafeSlot()
def on_step_inc_ver(self):
"""Tweak device b up"""
self.dev[self.device_ver].move(self.step_size_ver, relative=True)
self.scans.mv(self.dev[self.device_ver], self.step_size_ver, relative=True)
@SafeSlot()
def on_step_dec_ver(self):
"""Tweak device a down"""
self.dev[self.device_ver].move(-self.step_size_ver, relative=True)
self.scans.mv(self.dev[self.device_ver], -self.step_size_ver, relative=True)
@SafeSlot()
def on_setpoint_change_hor(self):
"""Change the setpoint for device a"""
self.ui.setpoint_hor.clearFocus()
setpoint = self.ui.setpoint_hor.text()
self.dev[self.device_hor].move(float(setpoint), relative=False)
self.scans.mv(self.dev[self.device_hor], float(setpoint), relative=False)
@SafeSlot()
def on_setpoint_change_ver(self):
"""Change the setpoint for device b"""
self.ui.setpoint_ver.clearFocus()
setpoint = self.ui.setpoint_ver.text()
self.dev[self.device_ver].move(float(setpoint), relative=False)
self.scans.mv(self.dev[self.device_ver], float(setpoint), relative=False)
if __name__ == "__main__": # pragma: no cover
+6 -6
View File
@@ -91,26 +91,26 @@ def test_positioner_box_on_stop(positioner_box):
def test_positioner_box_setpoint_change(positioner_box):
"""Test positioner box setpoint change"""
with mock.patch.object(positioner_box.dev["samx"], "move") as mock_move:
with mock.patch.object(positioner_box.scans, "mv") as mock_mv:
positioner_box.ui.setpoint.setText("100")
positioner_box.on_setpoint_change()
mock_move.assert_called_once_with(100, relative=False)
mock_mv.assert_called_once_with(positioner_box.dev["samx"], 100, relative=False)
def test_positioner_box_on_tweak_right(positioner_box):
"""Test tweak right button"""
with mock.patch.object(positioner_box.dev["samx"], "move") as mock_move:
with mock.patch.object(positioner_box.scans, "mv") as mock_mv:
positioner_box.ui.step_size.setValue(0.1)
positioner_box.on_tweak_right()
mock_move.assert_called_once_with(0.1, relative=True)
mock_mv.assert_called_once_with(positioner_box.dev["samx"], 0.1, relative=True)
def test_positioner_box_on_tweak_left(positioner_box):
"""Test tweak left button"""
with mock.patch.object(positioner_box.dev["samx"], "move") as mock_move:
with mock.patch.object(positioner_box.scans, "mv") as mock_mv:
positioner_box.ui.step_size.setValue(0.1)
positioner_box.on_tweak_left()
mock_move.assert_called_once_with(-0.1, relative=True)
mock_mv.assert_called_once_with(positioner_box.dev["samx"], -0.1, relative=True)
def test_positioner_box_setpoint_out_of_range(positioner_box):
+8 -16
View File
@@ -50,34 +50,26 @@ def test_positioner_box_2d(positioner_box_2d):
def test_positioner_box_move_hor_does_not_affect_ver(positioner_box_2d):
"""Test that moving one positioner doesn't affect the other"""
with (
mock.patch.object(positioner_box_2d.dev["samx"], "move") as mock_move_hor,
mock.patch.object(positioner_box_2d.dev["samy"], "move") as mock_move_ver,
):
with mock.patch.object(positioner_box_2d.scans, "mv") as mock_mv:
positioner_box_2d.ui.step_size_hor.setValue(0.1)
positioner_box_2d.on_tweak_inc_hor()
mock_move_hor.assert_called_once_with(0.01, relative=True)
mock_move_ver.assert_not_called()
with (
mock.patch.object(positioner_box_2d.dev["samx"], "move") as mock_move_hor,
mock.patch.object(positioner_box_2d.dev["samy"], "move") as mock_move_ver,
):
mock_mv.assert_called_once_with(positioner_box_2d.dev["samx"], 0.01, relative=True)
with mock.patch.object(positioner_box_2d.scans, "mv") as mock_mv:
positioner_box_2d.ui.step_size_ver.setValue(0.1)
positioner_box_2d.on_step_dec_ver()
mock_move_ver.assert_called_once_with(-0.1, relative=True)
mock_move_hor.assert_not_called()
mock_mv.assert_called_once_with(positioner_box_2d.dev["samy"], -0.1, relative=True)
def test_positioner_box_setpoint_changes(positioner_box_2d: PositionerBox2D):
"""Test positioner box setpoint change"""
with mock.patch.object(positioner_box_2d.dev["samx"], "move") as mock_move:
with mock.patch.object(positioner_box_2d.scans, "mv") as mock_mv:
positioner_box_2d.ui.setpoint_hor.setText("100")
positioner_box_2d.on_setpoint_change_hor()
mock_move.assert_called_once_with(100, relative=False)
with mock.patch.object(positioner_box_2d.dev["samy"], "move") as mock_move:
mock_mv.assert_called_once_with(positioner_box_2d.dev["samx"], 100, relative=False)
with mock.patch.object(positioner_box_2d.scans, "mv") as mock_mv:
positioner_box_2d.ui.setpoint_ver.setText("100")
positioner_box_2d.on_setpoint_change_ver()
mock_move.assert_called_once_with(100, relative=False)
mock_mv.assert_called_once_with(positioner_box_2d.dev["samy"], 100, relative=False)
def test_positioner_box_2d_on_stop(positioner_box_2d: PositionerBox2D):