DAQ: fix to handle automated raster parameters

This commit is contained in:
martinappleby
2025-11-07 14:07:58 +01:00
parent 9f0bc6e076
commit fab7d95a22
+30 -15
View File
@@ -1212,30 +1212,45 @@ class AareDAQ:
params = SimpleScanParameters()
if (exp := getattr(aaredb_params, 'exposure', 0.04)) is not None:
# Exposure
exp = getattr(aaredb_params, 'exposure', None)
if exp is not None:
params.exp_time_s = exp
else:
params.exp_time_s = 0.04 # Default
if (trans := getattr(aaredb_params, 'transmission', 100)) is not None:
# Transmission
trans = getattr(aaredb_params, 'transmission', None)
if trans is not None:
logger.debug(f"transmission: {trans}")
params.transmission = trans / 100.0 if trans > 1.0 else trans
if (res := getattr(aaredb_params, 'targetresolution', 1.42)) is not None:
logger.debug(f"resolution: {res}")
logger.debug(f"dtz: {self.diffraction_geometry.calc_dtz_mm(res)}")
params.dtz = self.diffraction_geometry.calc_dtz_mm(res)
if res <= 1.5:
params.exp_time_s = 0.02
elif 1.5 < res <= 3.0:
params.exp_time_s = 0.04
else:
params.exp_time_s = 0.08
params.transmission = 1.0 # Default
logger.debug(f"res expected {res} using {params.exp_time_s} exp time")
# Resolution and DTZ
res = getattr(aaredb_params, 'targetresolution', None)
if res is not None:
logger.debug(f"resolution: {res}")
try:
params.dtz = self.diffraction_geometry.calc_dtz_mm(res)
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:
params.exp_time_s = 0.02
elif 1.5 < res <= 3.0:
params.exp_time_s = 0.04
else:
params.exp_time_s = 0.08
else:
params.dtz = 150
params.exp_time_s = 0.04
return params
def get_collection_params(self, prefer_smart: bool = False) -> tuple[SimpleScanParameters, str]:
spreadsheet_params = self.spreadsheet_params()
logger.debug(f"spreadsheet_params: {spreadsheet_params}")