DAQ: Deconvolute beam mark / beam center
This commit is contained in:
@@ -154,7 +154,7 @@ class MainWindow(QMainWindow):
|
||||
self.beamline.abr_tweak.abr_tweak.connect(self.daq.abr_tweak)
|
||||
self.beamline.abr_tweak.abr_save.connect(self.daq.abr_save)
|
||||
|
||||
self.beamline.beam_center.beam_center_clear.connect(self.daq.beam_center_clear)
|
||||
self.beamline.beam_mark.beam_mark_clear.connect(self.daq.beam_center_clear)
|
||||
self.camera_image.update_beam_center.connect(self.daq.beam_center_mark)
|
||||
|
||||
if zmq_addr is not None:
|
||||
|
||||
@@ -1,23 +1,35 @@
|
||||
from PySide6.QtCore import Signal, Slot
|
||||
from PySide6.QtWidgets import QWidget, QGridLayout, QPushButton
|
||||
from PySide6.QtWidgets import QWidget, QGridLayout, QLabel
|
||||
|
||||
from aaredaqlib.models import DAQStatusModel
|
||||
from aaregui.widgets.number_line_edit import NumberLineEdit
|
||||
from aaregui.widgets.title_label import TitleLabel
|
||||
|
||||
|
||||
class BeamCenterWidget(QWidget):
|
||||
beam_center_clear = Signal()
|
||||
beam_center = Signal(float, float)
|
||||
|
||||
def __init__(self, parent=None):
|
||||
super().__init__(parent)
|
||||
|
||||
grid_layout = QGridLayout(self)
|
||||
|
||||
grid_layout.addWidget(TitleLabel("Beam center", self), 0, 0)
|
||||
grid_layout.addWidget(TitleLabel("Beam center", self), 0, 0, 1, 5)
|
||||
|
||||
clear_button = QPushButton("Clear marks")
|
||||
grid_layout.addWidget(clear_button, 1, 0)
|
||||
clear_button.pressed.connect(self.clear_button_pressed)
|
||||
self.x = NumberLineEdit(-4000, 4000, 0, parent=self)
|
||||
self.y = NumberLineEdit(-4000, 4000, 0, parent=self)
|
||||
|
||||
@Slot()
|
||||
def clear_button_pressed(self):
|
||||
self.beam_center_clear.emit()
|
||||
grid_layout.addWidget(QLabel("x:"), 1, 0)
|
||||
grid_layout.addWidget(self.x, 1, 1)
|
||||
grid_layout.addWidget(QLabel("y:"), 1, 2)
|
||||
grid_layout.addWidget(self.y, 1, 3)
|
||||
grid_layout.addWidget(QLabel("pxl"), 1, 4)
|
||||
|
||||
@Slot(DAQStatusModel)
|
||||
def update_daq_status(self, s: DAQStatusModel):
|
||||
self.x.update_value(s.diffraction.beam_center_x)
|
||||
self.y.update_value(s.diffraction.beam_center_y)
|
||||
|
||||
@Slot(float)
|
||||
def beam_center_edited(self, _: float):
|
||||
self.beam_center.emit(self.x.value, self.y.value)
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
from PySide6.QtCore import Signal, Slot
|
||||
from PySide6.QtWidgets import QWidget, QGridLayout, QPushButton
|
||||
|
||||
from aaregui.widgets.title_label import TitleLabel
|
||||
|
||||
|
||||
class BeamMarkWidget(QWidget):
|
||||
beam_mark_clear = Signal()
|
||||
|
||||
def __init__(self, parent=None):
|
||||
super().__init__(parent)
|
||||
|
||||
grid_layout = QGridLayout(self)
|
||||
|
||||
grid_layout.addWidget(TitleLabel("Beam mark (image)", self), 0, 0)
|
||||
|
||||
clear_button = QPushButton("Clear marks")
|
||||
grid_layout.addWidget(clear_button, 1, 0)
|
||||
clear_button.pressed.connect(self.clear_button_pressed)
|
||||
|
||||
@Slot()
|
||||
def clear_button_pressed(self):
|
||||
self.beam_mark_clear.emit()
|
||||
@@ -2,6 +2,7 @@ from PySide6.QtWidgets import QFrame, QVBoxLayout
|
||||
|
||||
from aaregui.panels.abr_tweak_panel import AbrTweakWidget
|
||||
from aaregui.panels.beam_center_panel import BeamCenterWidget
|
||||
from aaregui.panels.beam_mark_panel import BeamMarkWidget
|
||||
from aaregui.panels.beamline_state_panel import BeamlineStatePanel
|
||||
from aaregui.panels.illumination_panel import IlluminationPanel
|
||||
from aaregui.panels.loop_centering_panel import LoopCenteringPanel
|
||||
@@ -43,10 +44,12 @@ class BeamlineControls(QFrame):
|
||||
self.v_layout.addWidget(self.samcam)
|
||||
|
||||
self.abr_tweak = AbrTweakWidget(self)
|
||||
self.beam_mark = BeamMarkWidget(self)
|
||||
self.beam_center = BeamCenterWidget(self)
|
||||
|
||||
if staff:
|
||||
self.v_layout.addWidget(self.abr_tweak)
|
||||
self.v_layout.addWidget(self.beam_mark)
|
||||
self.v_layout.addWidget(self.beam_center)
|
||||
|
||||
self.v_layout.addStretch()
|
||||
|
||||
Reference in New Issue
Block a user