Skip to content
Snippets Groups Projects
controltab.py 3.96 KiB
Newer Older
from PyQt5 import QtWidgets, QtCore
from pymeasure.display.widgets import TabWidget

esarrey's avatar
esarrey committed
from src.classes.stage import Stage

class ControlTab(TabWidget, QtWidgets.QWidget):
esarrey's avatar
esarrey committed

    stage = Stage()

    def __init__(self, name, parent=None):
        super().__init__(parent)
        self.name = name

        layout = QtWidgets.QGridLayout()

        self.x_label = QtWidgets.QLabel("X Position:")
esarrey's avatar
esarrey committed
        self.x_value = QtWidgets.QLabel(f"{self.stage.get_x_pos():.{3}f}mm")
        layout.addWidget(self.x_label, 0, 0)
        layout.addWidget(self.x_value, 0, 1)

        self.y_label = QtWidgets.QLabel("Y Position:")
esarrey's avatar
esarrey committed
        self.y_value = QtWidgets.QLabel(f"{self.stage.get_y_pos():.{3}f}mm")
        layout.addWidget(self.y_label, 1, 0)
        layout.addWidget(self.y_value, 1, 1)

esarrey's avatar
esarrey committed
        self.z_label = QtWidgets.QLabel("Focus Position:")
esarrey's avatar
esarrey committed
        self.z_value = QtWidgets.QLabel(f"{self.stage.get_z_pos():.{3}f}mm")
        layout.addWidget(self.z_label, 2, 0)
        layout.addWidget(self.z_value, 2, 1)

esarrey's avatar
esarrey committed
        self.x_up_button = QtWidgets.QPushButton("X ←")
        self.x_down_button = QtWidgets.QPushButton("X →")
        layout.addWidget(self.x_up_button, 0, 2)
        layout.addWidget(self.x_down_button, 0, 3)

        self.y_up_button = QtWidgets.QPushButton("Y ↑")
        self.y_down_button = QtWidgets.QPushButton("Y ↓")
        layout.addWidget(self.y_up_button, 1, 2)
        layout.addWidget(self.y_down_button, 1, 3)

esarrey's avatar
esarrey committed
        self.z_up_button = QtWidgets.QPushButton("Focus ↑")
        self.z_down_button = QtWidgets.QPushButton("Focus ↓")
        layout.addWidget(self.z_up_button, 2, 2)
        layout.addWidget(self.z_down_button, 2, 3)

        self.setLayout(layout)

esarrey's avatar
esarrey committed
        self.x_up_button.pressed.connect(self.jog_x_up)
        self.x_up_button.released.connect(self.stop_jogs)
        self.x_up_button.clicked.connect(self.increment_x_up)
esarrey's avatar
esarrey committed
        self.x_down_button.pressed.connect(self.jog_x_down)
        self.x_down_button.released.connect(self.stop_jogs)
        self.x_down_button.clicked.connect(self.increment_x_down)

esarrey's avatar
esarrey committed
        self.y_up_button.pressed.connect(self.jog_y_up)
        self.y_up_button.released.connect(self.stop_jogs)
        self.y_up_button.clicked.connect(self.increment_y_up)
esarrey's avatar
esarrey committed
        self.y_down_button.pressed.connect(self.jog_y_down)
        self.y_down_button.released.connect(self.stop_jogs)
        self.y_down_button.clicked.connect(self.increment_y_down)

esarrey's avatar
esarrey committed
        self.z_up_button.pressed.connect(self.jog_z_up)
        self.z_up_button.released.connect(self.stop_jogs)
        self.z_up_button.clicked.connect(self.increment_z_up)
esarrey's avatar
esarrey committed
        self.z_down_button.pressed.connect(self.jog_z_down)
        self.z_down_button.released.connect(self.stop_jogs)
        self.z_down_button.clicked.connect(self.increment_z_down)

esarrey's avatar
esarrey committed
    def jog_x_up(self):
        self.stage.motor_x.jog('+')
esarrey's avatar
esarrey committed
    def jog_x_down(self):
        self.stage.motor_x.jog('-')

    def increment_x_up(self):
esarrey's avatar
esarrey committed
        self.stage.move_x(1)
        self.update_positions()
    
    def increment_x_down(self):
esarrey's avatar
esarrey committed
        self.stage.move_x(-1)
        self.update_positions()
esarrey's avatar
esarrey committed
    def jog_y_up(self):
        self.stage.motor_y.jog('+')
esarrey's avatar
esarrey committed
    def jog_y_down(self):
       self.stage.motor_y.jog('-')

    def increment_y_up(self):
esarrey's avatar
esarrey committed
        self.stage.move_y(1)
        self.update_positions()
    
    def increment_y_down(self):
esarrey's avatar
esarrey committed
        self.stage.move_y(-1)
        self.update_positions()
esarrey's avatar
esarrey committed
    def jog_z_up(self):
        self.stage.motor_z.jog('+')
esarrey's avatar
esarrey committed
    def jog_z_down(self):
        self.stage.motor_z.jog('-')

    def increment_z_up(self):
esarrey's avatar
esarrey committed
        self.stage.move_z(1)
        self.update_positions()
    
    def increment_z_down(self):
esarrey's avatar
esarrey committed
        self.stage.move_z(-1)
        self.update_positions()
esarrey's avatar
esarrey committed
    def stop_jogs(self):
        self.stage.stop_all()
        self.update_positions()

    def update_positions(self):
esarrey's avatar
esarrey committed
        self.x_value.setText(f"{self.stage.get_x_pos():.{3}f}mm")
        self.y_value.setText(f"{self.stage.get_y_pos():.{3}f}mm")
        self.z_value.setText(f"{self.stage.get_z_pos():.{3}f}mm")