From 09be1864a5288e0d6005bb875de7582ea93e5c08 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 16 Jul 2025 16:49:46 +0200 Subject: [PATCH] GUI: Run viewer to check online X-ray images --- daq/src/aaredaq/daq.py | 8 +++++--- gui/src/aaregui/main_window.py | 4 ++++ gui/src/aaregui/panels/rotation_data_collection.py | 3 +++ gui/src/aaregui/panels/sample_queue_panel.py | 2 ++ gui/src/aaregui/scan_logic/raster_grid_manager.py | 4 ++++ gui/src/aaregui/threads/jfjoch_viewer.py | 4 ++++ 6 files changed, 22 insertions(+), 3 deletions(-) diff --git a/daq/src/aaredaq/daq.py b/daq/src/aaredaq/daq.py index 83a543ce..91f37cde 100644 --- a/daq/src/aaredaq/daq.py +++ b/daq/src/aaredaq/daq.py @@ -801,15 +801,17 @@ class AareDAQ: smargon= SmargonCoordinate(), n_x=1, n_y=1, + dtz=110.0, grid_size_mm=Coordinate(x=geom.beam_size_mm.x * 0.8, y=geom.beam_size_mm.y * 0.8), omega_deg=0 )) self.__rotation( RotationScanRequest(start_omega_deg=0, + dtz=110.0, file_prefix=sample_prefix, - exp_time_s=0.01, - incr_omega_deg=0.2, - steps=1800,)) + exp_time_s=0.003, + incr_omega_deg=0.4, + steps=900,)) self.__cfg.state_busy = False except Exception: self.__cfg.state_busy = False diff --git a/gui/src/aaregui/main_window.py b/gui/src/aaregui/main_window.py index 16fb35b9..eca43739 100644 --- a/gui/src/aaregui/main_window.py +++ b/gui/src/aaregui/main_window.py @@ -240,6 +240,10 @@ class MainWindow(QMainWindow): self.rotation.file_ready.connect(self.viewer.load_file) self.raster.image_selected.connect(self.viewer.load_image) + self.raster.viewer_track_online.connect(self.viewer.load_online) + self.data_collection.screening.viewer_track_online.connect(self.viewer.load_online) + self.job_list_panel.viewer_track_online.connect(self.viewer.load_online) + self.sample_logic.sample_changed.connect(self.data_collection.file_path_panel.update_sample) self.daq.update.connect(self.beamline.omega_panel.update_daq_status) diff --git a/gui/src/aaregui/panels/rotation_data_collection.py b/gui/src/aaregui/panels/rotation_data_collection.py index a5c8695c..7de69409 100644 --- a/gui/src/aaregui/panels/rotation_data_collection.py +++ b/gui/src/aaregui/panels/rotation_data_collection.py @@ -17,6 +17,7 @@ def add_screening_to_path(path): class RotationDataCollectionPanel(ScanSettingsPanel): rotation_scan = Signal(RotationScanRequest) + viewer_track_online = Signal() def __init__(self, diffraction: DiffractionGeometry, default_dtz: float = 200.0, @@ -114,6 +115,7 @@ class RotationDataCollectionPanel(ScanSettingsPanel): screening=True, exp_time_s=self.screening_image_time_enter.value) self.rotation_scan.emit(r) + self.viewer_track_online.emit() @Slot() def run_measurement(self): @@ -127,6 +129,7 @@ class RotationDataCollectionPanel(ScanSettingsPanel): screening=False, exp_time_s=self.image_time_enter.value) self.rotation_scan.emit(r) + self.viewer_track_online.emit() def image_number(self): total_angle = self.total_angle.value diff --git a/gui/src/aaregui/panels/sample_queue_panel.py b/gui/src/aaregui/panels/sample_queue_panel.py index ce09011a..5b5d1b21 100644 --- a/gui/src/aaregui/panels/sample_queue_panel.py +++ b/gui/src/aaregui/panels/sample_queue_panel.py @@ -10,6 +10,7 @@ from aaregui.widgets.title_label import TitleLabel class SampleQueuePanel(QFrame): auto_scan = Signal(SampleShortInfo) unmount = Signal() + viewer_track_online = Signal() def __init__(self, parent=None, samples: SampleShortInfoList | None = None): super().__init__(parent) @@ -64,6 +65,7 @@ class SampleQueuePanel(QFrame): self.__pause = False self.play_button.setText("⏸ Pause") self.auto_scan.emit(self.table_model.samples[0]) + self.viewer_track_online.emit() else: self.__set_to_pause = True self.__pause = True diff --git a/gui/src/aaregui/scan_logic/raster_grid_manager.py b/gui/src/aaregui/scan_logic/raster_grid_manager.py index e7a48145..90d8037d 100644 --- a/gui/src/aaregui/scan_logic/raster_grid_manager.py +++ b/gui/src/aaregui/scan_logic/raster_grid_manager.py @@ -72,6 +72,8 @@ def normalize_angle(angle_deg: float) -> float: return normalized_angle class RasterGridManager(QObject): + viewer_track_online = Signal() + grid_updated = Signal() grid_scan = Signal(RasterGridRequest) @@ -309,11 +311,13 @@ class RasterGridManager(QObject): def run_grid_scan(self): grid = copy.deepcopy(self.__active_grid) self.grid_scan.emit(grid) + self.viewer_track_online.emit() @Slot() def run_grid_scan_auto(self): grid = copy.deepcopy(self.__active_grid) self.grid_scan_auto.emit(grid) + self.viewer_track_online.emit() def spot_ice_ratio(self, obj): if obj.spots_ice is None or obj.spots_low_res is None or obj.spots_low_res <= 0: diff --git a/gui/src/aaregui/threads/jfjoch_viewer.py b/gui/src/aaregui/threads/jfjoch_viewer.py index 2c0b21f6..031c3f91 100644 --- a/gui/src/aaregui/threads/jfjoch_viewer.py +++ b/gui/src/aaregui/threads/jfjoch_viewer.py @@ -48,4 +48,8 @@ class JFJochDBusClient(QObject): if self._ensure_interface(): reply = self.__interface.call("LoadFile", path, number, 1) + @Slot() + def load_online(self): + if self._ensure_interface(): + reply = self.__interface.call("LoadFile", "http://sls-gpu-001:8080", -1, 1)