diff --git a/src/nqrduck_autotm/controller.py b/src/nqrduck_autotm/controller.py
index d98fac7..e3a699e 100644
--- a/src/nqrduck_autotm/controller.py
+++ b/src/nqrduck_autotm/controller.py
@@ -664,4 +664,35 @@ class AutoTMController(ModuleController):
command = f"m{motor_identifier}{steps}"
self.send_command(command)
+ def on_absolute_move(self, steps : str) -> None:
+ """This method is called when the absolute move button is pressed.
+
+ Args:
+ steps (str): The number of steps to move the stepper.
+ """
+
+ # First char is the stepper identifier, m for matching and t for tuning
+ motor_identifier = self.module.model.active_stepper.TYPE.lower()[0]
+
+ # We check if the steps are valid
+ future_position = int(steps)
+
+ if future_position < 0:
+ error = "Could not move stepper. Stepper position cannot be negative"
+ self.module.view.add_info_text(error)
+ return
+
+ if future_position > self.module.model.active_stepper.MAX_STEPS:
+ error = f"Could not move stepper. Stepper position cannot be larger than {self.module.model.active_stepper.MAX_STEPS}"
+ self.module.view.add_info_text(error)
+ return
+
+ # We calculate the number of steps to move
+ stepper_current_position = self.module.model.active_stepper.position
+ steps = future_position - stepper_current_position
+
+ # We send the command to the atm system, the first m identifies this is a move command
+ command = f"m{motor_identifier}{steps}"
+ self.send_command(command)
+
diff --git a/src/nqrduck_autotm/resources/autotm_widget.ui b/src/nqrduck_autotm/resources/autotm_widget.ui
index 02852d3..753fb72 100644
--- a/src/nqrduck_autotm/resources/autotm_widget.ui
+++ b/src/nqrduck_autotm/resources/autotm_widget.ui
@@ -7,7 +7,7 @@
0
0
1280
- 1011
+ 1089
@@ -95,7 +95,7 @@
-
- 80.200000000000003
+ 80.099999999999994
@@ -182,7 +182,11 @@
-
-
+
+
+ 1000000
+
+
-
@@ -229,10 +233,10 @@
-
- -1000
+ 0
- 1000
+ 50000
500
@@ -309,7 +313,7 @@
Electrical
-
+
-
@@ -515,7 +519,7 @@
0
0
- 285
+ 291
83
diff --git a/src/nqrduck_autotm/widget.py b/src/nqrduck_autotm/widget.py
index 5f3cbe6..a32d211 100644
--- a/src/nqrduck_autotm/widget.py
+++ b/src/nqrduck_autotm/widget.py
@@ -12,7 +12,7 @@ from PyQt6 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
- Form.resize(1280, 1011)
+ Form.resize(1280, 1089)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Preferred, QtWidgets.QSizePolicy.Policy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
@@ -61,7 +61,7 @@ class Ui_Form(object):
self.gridLayout_8 = QtWidgets.QGridLayout()
self.gridLayout_8.setObjectName("gridLayout_8")
self.stopfrequencyBox = QtWidgets.QDoubleSpinBox(parent=Form)
- self.stopfrequencyBox.setProperty("value", 80.2)
+ self.stopfrequencyBox.setProperty("value", 80.1)
self.stopfrequencyBox.setObjectName("stopfrequencyBox")
self.gridLayout_8.addWidget(self.stopfrequencyBox, 1, 1, 1, 1)
self.label_13 = QtWidgets.QLabel(parent=Form)
@@ -108,6 +108,7 @@ class Ui_Form(object):
self.label_16.setObjectName("label_16")
self.gridLayout_4.addWidget(self.label_16, 0, 0, 1, 3)
self.absoluteposBox = QtWidgets.QSpinBox(parent=self.mechTab)
+ self.absoluteposBox.setMaximum(1000000)
self.absoluteposBox.setObjectName("absoluteposBox")
self.gridLayout_4.addWidget(self.absoluteposBox, 6, 1, 1, 1)
self.stepperselectBox = QtWidgets.QComboBox(parent=self.mechTab)
@@ -128,8 +129,8 @@ class Ui_Form(object):
self.label_20.setObjectName("label_20")
self.gridLayout_4.addWidget(self.label_20, 6, 0, 1, 1)
self.stepsizeBox = QtWidgets.QSpinBox(parent=self.mechTab)
- self.stepsizeBox.setMinimum(-1000)
- self.stepsizeBox.setMaximum(1000)
+ self.stepsizeBox.setMinimum(0)
+ self.stepsizeBox.setMaximum(50000)
self.stepsizeBox.setProperty("value", 500)
self.stepsizeBox.setObjectName("stepsizeBox")
self.gridLayout_4.addWidget(self.stepsizeBox, 3, 1, 1, 1)
@@ -264,7 +265,7 @@ class Ui_Form(object):
self.scrollArea.setWidgetResizable(True)
self.scrollArea.setObjectName("scrollArea")
self.scrollAreaWidgetContents = QtWidgets.QWidget()
- self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 285, 83))
+ self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 291, 83))
self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents")
self.scrollArea.setWidget(self.scrollAreaWidgetContents)
self.verticalLayout_2.addWidget(self.scrollArea)