diff --git a/src/aare/daq/daq.py b/src/aare/daq/daq.py index f5450f82..84143a57 100644 --- a/src/aare/daq/daq.py +++ b/src/aare/daq/daq.py @@ -20,7 +20,7 @@ from aare.daq.config import BeamlineConfig, ABR_POS_MOUNT from aare.daq.config import BeamlineStateEnum from aare.daq.devices import BeamlineDevices from aare.daq.mlbox import MlBox -from aare.common.beamline import MXBeamline +from aare.common.beamline import MXBeamline, cfg_get from aare.common.coordinate import Coordinate, SmargonCoordinate, AerotechCoordinate from aare.common.diffraction_geometry import DiffractionGeometry from aare.common.logger_config import setup_logger @@ -1700,7 +1700,7 @@ class AareDAQ: def save_abr_meas_pos(self): self.__cfg.set_busy(BeamlineStateEnum.SampleAlignment) try: - self.__cfg.abr_meas_pos = AerotechCoordinate(at_mm=self.__devs.aerotech_pos.at_mm, omega_deg=0.0) + self.__cfg.abr_meas_pos = AerotechCoordinate(at_mm=self.__devs.aerotech_pos.at_mm) self.__cfg.state_busy = False except Exception: self.__cfg.state_busy = False @@ -2326,17 +2326,43 @@ class AareDAQ: # return sample return SampleShortInfoList(s=[x for x in self.sample_spreadsheet.s if x.user == pgroup]) - def get_auto_raster_params(self) -> SimpleScanParameters: + def get_beamline_default_raster_params(self) -> SimpleScanParameters: + default_exp_time_s = cfg_get("daq.data_collection_settings.default_raster_scan_settings.exp_time_s", 0.01) + default_transmission = cfg_get("daq.data_collection_settings.default_raster_scan_settings.transmission", 1.0) + default_dtz = cfg_get("daq.data_collection_settings.default_raster_scan_settings.dtz", 250) + return SimpleScanParameters( + dtz=default_dtz, + exp_time_s=default_exp_time_s, + transmission=default_transmission + ) + def get_beamline_default_rotation_params(self) -> SimpleScanParameters: + default_exp_time_s = cfg_get("daq.data_collection_settings.default_rotation_settings.exp_time_s", 0.01) + default_transmission = cfg_get("daq.data_collection_settings.default_rotation_settings.transmission", 1.0) + default_dtz = cfg_get("daq.data_collection_settings.default_rotation_settings.dtz", 250) + default_start_omega_deg = cfg_get("daq.data_collection_settings.default_rotation_settings.start_omega_deg", 0.0) + default_increment_omega_deg = cfg_get("daq.data_collection_settings.default_rotation_settings.incr_omega_deg", 0.2) + default_steps = cfg_get("daq.data_collection_settings.default_rotation_settings.steps", 1800) + return SimpleScanParameters( + dtz=default_dtz, + exp_time_s=default_exp_time_s, + transmission=default_transmission, + start_omega_deg=default_start_omega_deg, + incr_omega_deg=default_increment_omega_deg, + steps=default_steps + ) + + def get_auto_raster_params(self) -> SimpleScanParameters: + default_params = self.get_beamline_default_raster_params() if self.status.sample is None: - return SimpleScanParameters(dtz=150, exp_time_s=0.04, transmission=1.0) + return default_params aaredb_params = self.status.sample.aaredb_params if hasattr(self.status.sample, "aaredb_params") else None if aaredb_params is None: - return SimpleScanParameters(dtz=150, exp_time_s=0.04, transmission=1.0) + return default_params - params = SimpleScanParameters() + params = default_params # Exposure exp = getattr(aaredb_params, 'exposure', None) @@ -2362,7 +2388,6 @@ class AareDAQ: logger.debug(f"dtz: {params.dtz}") except Exception as e: logger.error(f"Failed to calculate dtz for resolution {res}: {e}") - params.dtz = 150 # Fallback default # Adjust exposure time based on resolution if res <= 1.5: @@ -2371,9 +2396,6 @@ class AareDAQ: params.exp_time_s = 0.04 else: params.exp_time_s = 0.08 - else: - params.dtz = 150 - params.exp_time_s = 0.01 return params