From 2816f354fa1692e9eb750ed7bfa25cfb60ec1bfa Mon Sep 17 00:00:00 2001 From: David Perl Date: Fri, 4 Sep 2026 16:23:36 +0200 Subject: [PATCH] fix: validate gridscan params --- src/aare/daq/daq.py | 9 +++++++++ src/aare/daq/operations/raster/service.py | 20 +++++--------------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/aare/daq/daq.py b/src/aare/daq/daq.py index d5e54633..6a75d8cb 100644 --- a/src/aare/daq/daq.py +++ b/src/aare/daq/daq.py @@ -1257,6 +1257,15 @@ class AareDAQ: success=False, payload=payload, error=e, comment=additional_comment ) + def _validate_grid_params(self, request: RasterGridRequest): + self._devs.aerotech.validate_grid_scan( + grid_elem_size_y_um=request.grid_size_mm.y * 1000, + grid_elem_size_x_um=request.grid_size_mm.x * 1000, + grid_elem_count_x=request.n_x, + grid_elem_count_y=request.n_y, + time_sec=request.exp_time_s, + ) + def _execute_raster_sequence( self, grid_request: RasterGridRequest, auto_center: bool = False ) -> CompletedRasterGrid | None: diff --git a/src/aare/daq/operations/raster/service.py b/src/aare/daq/operations/raster/service.py index 6715e7f4..c0d26b69 100644 --- a/src/aare/daq/operations/raster/service.py +++ b/src/aare/daq/operations/raster/service.py @@ -421,19 +421,12 @@ class RasterService: if self.ctx.sample is not None and self.ctx.sample.db_id is not None: self.ctx.deps.aare.create_gridscan_run(self.ctx.sample, request, status) - if not self.ctx.deps.cfg.simulated_detector: - self.ctx.deps.jfjoch.wait_till_running(timeout=60.0) - else: - self.logger.info("Simulated detector mode enabled; faking jfjoch intilalisation.") + self.ctx.deps.jfjoch.wait_till_running(timeout=60.0) self.logger.debug( f"Starting grid scan with {request.n_x}x{request.n_y} points, exp time {request.exp_time_s}s" ) - if not self.ctx.deps.cfg.simulated_detector: - # The detector move (sa2dc) is non-blocking; ensure it has reached - # the requested distance before triggering the scan, so data is - # collected at the dtz already reported to JFJoch/DB. - self.ctx.deps.devs.set_dtz(request.dtz, wait=True) + self.ctx.deps.devs.set_dtz(request.dtz, wait=True) self.ctx.deps.devs.aerotech.grid_scan( grid_elem_size_y_um=request.grid_size_mm.y * 1000, grid_elem_size_x_um=request.grid_size_mm.x * 1000, @@ -747,12 +740,9 @@ class RasterService: grid.omega_deg = geom.omega_deg status = self.ctx.status - if not self.ctx.deps.cfg.simulated_detector: - self.logger.info("initialise detector") - self.ctx.deps.jfjoch.measure_raster(grid, status) - self.logger.info("detector initialised") - else: - self.logger.info("Simulated detector mode enabled; using fake raster result.") + self.logger.info("initialise detector") + self.ctx.deps.jfjoch.measure_raster(grid, status) + self.logger.info("detector initialised") if self.ctx.services.state is None: raise RuntimeError("RasterService requires services.state")