raster/rotation: wait until running jfjoch added, order in which events occur changes so detector intiailisation starts while beamline is being configured
This commit is contained in:
+45
-15
@@ -458,6 +458,15 @@ class AareDAQ:
|
||||
),
|
||||
)
|
||||
else:
|
||||
|
||||
if not self.__cfg.simulated_detector:
|
||||
logger.info(f"initialise detector for raster")
|
||||
status = self.status
|
||||
self.__jfjoch.measure_raster(grid_request, status)
|
||||
logger.info("detector initialised")
|
||||
else:
|
||||
logger.info("Simulated detector mode enabled; using fake raster result.")
|
||||
|
||||
self.__setup_datacollection(request=grid_request)
|
||||
self.__set_state(BeamlineStateEnum.DataCollection)
|
||||
raster_result = self.__raster(grid_request)
|
||||
@@ -523,9 +532,16 @@ class AareDAQ:
|
||||
CompletedRotationScan result or None if failed
|
||||
"""
|
||||
try:
|
||||
status= self.status
|
||||
if self.__cfg.simulated_detector:
|
||||
logger.info("Simulated detector mode enabled; skipping JFJoch start.")
|
||||
else:
|
||||
self.__jfjoch.measure_rotation(rotation_request, status, self.__cfg.xrf)
|
||||
|
||||
self.__setup_datacollection(request=rotation_request)
|
||||
if self.sample is not None and self.sample.db_id is not None:
|
||||
self.__aare.send_sample_event(self.sample, SampleEventType.COLLECTING)
|
||||
|
||||
self.__set_state(BeamlineStateEnum.DataCollection)
|
||||
result = self.__rotation(rotation_request)
|
||||
self.__set_state(BeamlineStateEnum.SampleAlignment)
|
||||
@@ -1091,6 +1107,7 @@ class AareDAQ:
|
||||
|
||||
def __auto_center(self, request: RasterGridRequest) -> CompletedRasterGrid | None:
|
||||
# TODO do we need to handle the two grid scans differently?
|
||||
|
||||
sample = self.sample
|
||||
|
||||
if sample is None:
|
||||
@@ -1148,7 +1165,7 @@ class AareDAQ:
|
||||
},
|
||||
),
|
||||
)
|
||||
self.__set_state(BeamlineStateEnum.DataCollection)
|
||||
|
||||
geom = self.sample_geometry
|
||||
grid = copy.deepcopy(request)
|
||||
grid.smargon_top_left = r.smargon_top_left
|
||||
@@ -1158,6 +1175,17 @@ class AareDAQ:
|
||||
grid.file_prefix = f"{old_prefix}_{grid.omega_deg}deg"
|
||||
grid.omega_deg = geom.omega_deg
|
||||
|
||||
status = self.status
|
||||
|
||||
if not self.__cfg.simulated_detector:
|
||||
logger.info("initialise detector")
|
||||
self.__jfjoch.measure_raster(grid, status)
|
||||
logger.info("detector initialised")
|
||||
else:
|
||||
logger.info("Simulated detector mode enabled; using fake raster result.")
|
||||
|
||||
self.__set_state(BeamlineStateEnum.DataCollection)
|
||||
|
||||
logger.info(
|
||||
"Running first auto-center raster",
|
||||
extra=merge_log_context(
|
||||
@@ -1173,8 +1201,8 @@ class AareDAQ:
|
||||
res1 = self.__raster(grid)
|
||||
|
||||
grid.omega_deg += 90
|
||||
|
||||
self.__devs.aerotech_omega = grid.omega_deg
|
||||
self.__set_state(BeamlineStateEnum.DataCollection)
|
||||
|
||||
grid.n_x = 1
|
||||
grid.file_prefix = f"{old_prefix}_{grid.omega_deg}deg"
|
||||
@@ -1204,6 +1232,15 @@ class AareDAQ:
|
||||
},
|
||||
),
|
||||
)
|
||||
status = self.status
|
||||
if not self.__cfg.simulated_detector:
|
||||
logger.info(f"initialise detector for raster at {grid.omega_deg}")
|
||||
self.__jfjoch.measure_raster(grid, status)
|
||||
logger.info("detector initialised")
|
||||
else:
|
||||
logger.info("Simulated detector mode enabled; using fake raster result.")
|
||||
|
||||
self.__set_state(BeamlineStateEnum.DataCollection)
|
||||
|
||||
logger.info(
|
||||
"Running second auto-center raster",
|
||||
@@ -1407,6 +1444,9 @@ class AareDAQ:
|
||||
)
|
||||
|
||||
def __raster(self, request: RasterGridRequest, wait_for_screenshot: float | None = 0.3) -> CompletedRasterGridElem:
|
||||
|
||||
status = self.status
|
||||
|
||||
smargon_top_left =request.smargon_top_left
|
||||
self.__devs.set_smargon_pos(
|
||||
SmargonCoordinate(
|
||||
@@ -1415,7 +1455,7 @@ class AareDAQ:
|
||||
chi_deg=smargon_top_left.chi_deg,
|
||||
)
|
||||
)
|
||||
status = self.status
|
||||
|
||||
logger.info(
|
||||
"Starting raster acquisition",
|
||||
extra=merge_log_context(
|
||||
@@ -1433,12 +1473,7 @@ class AareDAQ:
|
||||
comment=f"Raster at {request.omega_deg:.1f} deg")
|
||||
self.__aare.create_gridscan_run(self.sample, request, status)
|
||||
|
||||
if not self.__cfg.simulated_detector:
|
||||
logger.info("initialise detector")
|
||||
self.__jfjoch.measure_raster(request, status)
|
||||
logger.info("detector initialised")
|
||||
else:
|
||||
logger.info("Simulated detector mode enabled; using fake raster result.")
|
||||
self.__jfjoch.wait_till_running(timeout=60.0)
|
||||
|
||||
self.__devs.aerotech.grid_scan(
|
||||
grid_elem_size_y_um=request.grid_size_mm.y * 1000,
|
||||
@@ -1638,12 +1673,7 @@ class AareDAQ:
|
||||
if self.sample is not None and self.sample.db_id is not None:
|
||||
self.__aare.create_rotation_run(self.sample, request, status)
|
||||
try:
|
||||
|
||||
if self.__cfg.simulated_detector:
|
||||
logger.info("Simulated detector mode enabled; skipping JFJoch start.")
|
||||
else:
|
||||
self.__jfjoch.measure_rotation(request, status, self.__cfg.xrf)
|
||||
|
||||
self.__jfjoch.wait_till_running(timeout=60.0)
|
||||
if request.screening:
|
||||
self.__devs.aerotech.screening_scan(
|
||||
rotation_deg=request.steps*request.incr_omega_deg,
|
||||
|
||||
Reference in New Issue
Block a user