DAQ/GUI: Fixes during pre-beamtime test

This commit is contained in:
2025-06-17 09:05:21 +02:00
parent 8034354427
commit 7aeee1a029
5 changed files with 23 additions and 18 deletions
+8 -5
View File
@@ -251,7 +251,7 @@ class AareDAQ:
def __raster(self, r: RasterGridRequest) -> CompletedRasterGrid:
max_time = r.exp_time_s * r.n_y * r.n_x + 60
self.__cfg.dtz = r.dtz_mm
self.__cfg.dtz = r.dtz
self.__set_state(BeamlineStateEnum.DataCollection)
self.__jfjoch.measure_raster(r, self.diffraction_geometry, self.sample)
self.__devs.aerotech.move(r.omega_deg, wait=True, speed=360.0)
@@ -275,11 +275,12 @@ class AareDAQ:
self.__cfg.state_busy = False
return result
except Exception as e:
self.__set_state(BeamlineStateEnum.SampleAlignment)
self.__cfg.state_busy = False
raise e
def __rotation(self, request: RotationScanRequest):
self.__cfg.dtz = request.dtz_mm
self.__cfg.dtz = request.dtz
self.__set_state(BeamlineStateEnum.DataCollection)
if request.start is not None:
@@ -314,18 +315,20 @@ class AareDAQ:
)
time.sleep(smargon_time_step)
self.__devs.aerotech.wait_scan_done(request.total_time_sec + 60)
self.__jfjoch.wait_till_done(5)
self.__devs.aerotech.wait_scan_done(total_time + 60)
self.__jfjoch.wait_till_done(60)
self.__devs.aerotech.reset()
def measure_rotation(self, request: RotationScanRequest):
self.__cfg.try_set_busy(timeout=ceil(request.total_time_sec + 360))
total_time = request.exp_time_s * request.steps
self.__cfg.try_set_busy(timeout=ceil(total_time + 360))
try:
self.__rotation(request)
self.__set_state(BeamlineStateEnum.SampleAlignment)
self.__cfg.state_busy = False
except Exception as e:
self.__set_state(BeamlineStateEnum.SampleAlignment)
self.__cfg.state_busy = False
raise e
+1
View File
@@ -148,6 +148,7 @@ class MainWindow(QMainWindow):
self.beamline.loopctr.find_tip.clicked.connect(self.daq.center_loop)
self.camera_image.smargon.connect(self.daq.move_smargon)
self.beamline.smargon_panel.smargon.connect(self.daq.move_smargon)
self.camera_image.samcam_updated.connect(self.daq.samcam_settings)
self.beamline.omega_panel.set_omega.connect(self.daq.set_omega)
self.camera_image.set_omega.connect(self.daq.set_omega)
+2 -2
View File
@@ -11,7 +11,6 @@ from aaregui.widgets.title_label import TitleLabel
class AbrTweakButtons(QWidget):
abr_tweak = Signal(Coordinate)
abr_goto_meas = Signal()
def __init__(self, parent=None):
super().__init__(parent)
@@ -77,6 +76,7 @@ class AbrTweakButtons(QWidget):
class AbrTweakWidget(QWidget):
abr_tweak = Signal(Coordinate)
abr_save = Signal()
abr_goto_meas = Signal()
def __init__(self, parent=None):
super().__init__(parent)
@@ -108,7 +108,7 @@ class AbrTweakWidget(QWidget):
@Slot()
def goto_button_pressed(self):
self.__abr_buttons.abr_goto_meas.emit()
self.abr_goto_meas.emit()
@Slot(Coordinate)
def abr_button_pressed(self, c: Coordinate):
-1
View File
@@ -8,7 +8,6 @@ from aaregui.widgets.title_label import TitleLabel
class SamcamPanel(QWidget):
# Signals for when exposure or gain values change
changed = Signal(SampleCameraSettings)
old_settings = SampleCameraSettings(gain=100, exposure=0.001)
def __init__(self, parent=None):
+12 -10
View File
@@ -22,7 +22,7 @@ from PySide6.QtWidgets import (
QFrame,
)
from aaredaqlib.models import DAQStatusModel, AutofocusSettings
from aaredaqlib.models import DAQStatusModel, AutofocusSettings, SampleCameraSettings
from aaregui.models.bookmark import SmargonBookmarkList
from aaredaqlib.coordinate import Coordinate, SmargonCoordinate
from aaredaqlib.raster_grid import RasterGridRequest
@@ -49,6 +49,7 @@ class SampleCameraImageLabel(QGraphicsView):
set_helical_end = Signal(SmargonCoordinate)
update_beam_center = Signal(float, float)
autofocus = Signal(AutofocusSettings)
samcam_updated = Signal(SampleCameraSettings)
def __init__(
self,
@@ -61,6 +62,7 @@ class SampleCameraImageLabel(QGraphicsView):
self.__raster_mgr = raster
self.__state = SampleCameraImageState.IDLE
self.__sam_cam = SampleCameraSettings(exposure=0.1, gain=100.0)
self.__geom = geom
self.__bookmarks: SmargonBookmarkList = SmargonBookmarkList()
@@ -300,6 +302,7 @@ class SampleCameraImageLabel(QGraphicsView):
@Slot(DAQStatusModel)
def update_daq_status(self, s: DAQStatusModel):
self.__geom = s.geom
self.__sam_cam = s.bl.sample_camera
def __left_single_click(self, event):
match self.__state:
@@ -404,17 +407,16 @@ class SampleCameraImageLabel(QGraphicsView):
if not self.wheel_event_timer.isActive():
delta_y = event.angleDelta().y()
if event.modifiers() & Qt.KeyboardModifier.ControlModifier:
val = 180
if event.modifiers() & Qt.KeyboardModifier.MetaModifier:
new_exp_time = self.__sam_cam.exposure * (1.0 + math.copysign(0.1, delta_y))
new_settings = SampleCameraSettings(exposure=new_exp_time, gain=self.__sam_cam.gain)
self.samcam_updated.emit(new_settings)
elif event.modifiers() & Qt.KeyboardModifier.ControlModifier:
self.set_omega.emit(self.__geom.omega_deg + math.copysign(180.0, delta_y))
elif event.modifiers() & Qt.KeyboardModifier.ShiftModifier:
val = 10
self.set_omega.emit(self.__geom.omega_deg + math.copysign(10.0, delta_y))
else:
val = 90
if delta_y > 0:
self.set_omega.emit(self.__geom.omega_deg + val)
else:
self.set_omega.emit(self.__geom.omega_deg - val)
self.set_omega.emit(self.__geom.omega_deg + math.copysign(90.0, delta_y))
# Start the timer to throttle further events
self.wheel_event_timer.start(self.wheel_event_threshold)