DAQ: renabled automation workflow, WIP

This commit is contained in:
2026-03-31 13:47:44 +02:00
parent 5443cab74e
commit 0ddde27896
+45 -40
View File
@@ -437,6 +437,7 @@ class AareDAQ:
self.__devs.tell.set_in_mount_position(True)
if target is None:
self.__devs.tell.unmount(wait=True, timeout=60.0)
self.__aare.sample_unmounted(self.__cfg.current_sample)
self.__cfg.current_sample = None
else:
value = self.__devs.tell.mount(address=target.tell_address(), force=True, auto_unmount=True, read_dm=False,
@@ -1578,8 +1579,9 @@ class AareDAQ:
print("alc failed")
self.__cfg.state_busy = False
end = time.perf_counter()
return end - start
#raise LoopCenteringFailed
logger.info(f"alc done at {time.perf_counter() - start}")
result = self.__face_detection_sequence(steps=7, step_size=30)
@@ -1590,44 +1592,47 @@ class AareDAQ:
hex_string = secrets.token_hex(3) # 3 bytes = 6 hex characters
print(hex_string.upper())
# raster_params = self.get_auto_raster_params()
# if self.__auto_center(RasterGridRequest(
# exp_time_s=raster_params.exp_time_s,
# file_prefix=sample_prefix + f"_{hex_string}",
# smargon_top_left= SmargonCoordinate(),
# n_x=1,
# n_y=1,
# dtz=raster_params.dtz,
# grid_size_mm=Coordinate(x=geom.beam_size_mm.x * 0.5, y=geom.beam_size_mm.y * 0.5),
# omega_deg=self.omega,
# transmission = raster_params.transmission,
# )):
# logger.info(f"raster scans done at {time.perf_counter() - start}")
# params, source = self.get_collection_params(prefer_smart=False)
# logger.info(f"Using {source} for data collection: {params}")
#
# self.__cfg.zoom_mode = ZoomModeEnum.User
# self.__devs.samcam_settings = self.__cfg.zoom_settings.get_camera_settings(self.zoom)
# self.__devs.dtz = params.dtz
# if self.omega + 180 < 720:
# start_omega = self.omega
# else:
# start_omega = params.start_omega_deg
# # self.__rotation( RotationScanRequest(start_omega_deg=start_omega,
# # dtz=params.dtz,
# # file_prefix="data/" + sample_prefix + f"_{hex_string}",
# # exp_time_s=params.exp_time_s,
# # incr_omega_deg=params.incr_omega_deg,
# # steps=params.steps,
# # transmission=params.transmission,
# # ))
# logger.info(f"rotation done at {time.perf_counter() - start}")
# else:
# logger.error("auto center failed")
# self.__aare.axc_failed(sample)
self.zoom = 1
self.__cfg.zoom_mode = ZoomModeEnum.User
self.__cfg.state_busy = False
raster_params = self.get_auto_raster_params()
if self.__auto_center(RasterGridRequest(
exp_time_s=raster_params.exp_time_s,
file_prefix=sample_prefix + f"_{hex_string}",
smargon_top_left= SmargonCoordinate(),
n_x=1,
n_y=1,
dtz=raster_params.dtz,
grid_size_mm=Coordinate(x=geom.beam_size_mm.x * 0.5, y=geom.beam_size_mm.y * 0.5),
omega_deg=self.omega,
transmission = raster_params.transmission,
)):
logger.info(f"raster scans done at {time.perf_counter() - start}")
params, source = self.get_collection_params(prefer_smart=False)
logger.info(f"Using {source} for data collection: {params}")
self.__cfg.zoom_mode = ZoomModeEnum.User
self.__devs.samcam_settings = self.__cfg.zoom_settings.get_camera_settings(self.zoom)
self.__devs.dtz = params.dtz
if self.omega + 180 < 720:
start_omega = self.omega
else:
start_omega = params.start_omega_deg
self.__rotation( RotationScanRequest(start_omega_deg=start_omega,
dtz=params.dtz,
file_prefix="data/" + sample_prefix + f"_{hex_string}",
exp_time_s=params.exp_time_s,
incr_omega_deg=params.incr_omega_deg,
steps=params.steps,
transmission=params.transmission,
))
logger.info(f"rotation done at {time.perf_counter() - start}")
if sample.db_id is not None:
self.__aare.sample_collected(sample)
self.save_screenshot_db(sample.db_id, f"{sample.db_id}_collected")
self.__cfg.state_busy = False
end = time.perf_counter()
return end - start
else:
logger.error("auto center failed")
self.__aare.axc_failed(sample)
except Exception as e:
logger.error(f"Error in measure: {e}")
if isinstance(e, AXCFailed):
@@ -1638,7 +1643,7 @@ class AareDAQ:
self.__cfg.state_busy = False
end = time.perf_counter()
raise e
self.__cfg.state_busy = False
end = time.perf_counter()
return end - start