diff --git a/src/aare/daq/daq.py b/src/aare/daq/daq.py index 9ed4ba0f..39d375a9 100644 --- a/src/aare/daq/daq.py +++ b/src/aare/daq/daq.py @@ -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