From 1b168c088cce48df039e34fc85ac52fb2fedf263 Mon Sep 17 00:00:00 2001 From: x01da Date: Tue, 18 Aug 2026 14:55:23 +0200 Subject: [PATCH] fix(mo1_bragg): Set scan angles in advanced scan to prevent bug in NIDAQ --- debye_bec/devices/mo1_bragg/mo1_bragg.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/debye_bec/devices/mo1_bragg/mo1_bragg.py b/debye_bec/devices/mo1_bragg/mo1_bragg.py index dd451d0..b31f65f 100644 --- a/debye_bec/devices/mo1_bragg/mo1_bragg.py +++ b/debye_bec/devices/mo1_bragg/mo1_bragg.py @@ -465,6 +465,7 @@ class Mo1Bragg(PSIDeviceBase, Mo1BraggPositioner): status = CompareStatus(out_signal, 0, operation_success=">") self.cancel_on_stop(status) status.wait(self.timeout_for_pvwait) + # logger.info(f"Converted energy {inp} to angle {out_signal.get()}") return out_signal.get() def set_advanced_xas_settings( @@ -494,6 +495,15 @@ class Mo1Bragg(PSIDeviceBase, Mo1BraggPositioner): status_list = [] + # Even though s_scan_angle_lo and -_hi are not used by the mono + # for the advanced scan, we set it because the NIDAQ will read + # those signals to calculate the expected number of encoder steps + status_list.append(self.scan_settings.s_scan_angle_lo.set(pos[0])) + self.cancel_on_stop(status_list[-1]) + + status_list.append(self.scan_settings.s_scan_angle_hi.set(pos[-1])) + self.cancel_on_stop(status_list[-1]) + status_list.append(self.scan_settings.a_scan_pos.set(pos)) self.cancel_on_stop(status_list[-1])