DAQ: Deconvolute beam mark / beam center

This commit is contained in:
2025-06-13 11:33:39 +02:00
parent 3988c345c9
commit ca69bb0094
8 changed files with 82 additions and 31 deletions
+1 -1
View File
@@ -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:
+21 -9
View File
@@ -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)
+23
View File
@@ -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()