fix: mo1_bragg calculator
CI for superxas_bec / test (push) Successful in 1m32s
CI for superxas_bec / test (pull_request) Successful in 1m54s

This commit is contained in:
x10da
2026-06-02 10:44:30 +02:00
parent c1ba279b98
commit 3fb2fd9703
+13 -8
View File
@@ -402,26 +402,31 @@ class Mo1Bragg(PSIDeviceBase, Mo1BraggPositioner):
Returns:
output (float): Converted angle or energy
"""
self.calculator.calc_reset.put(0)
self.calculator.calc_reset.put(1)
status = CompareStatus(self.calculator.calc_done, 0)
self.cancel_on_stop(status)
status.wait(self.timeout_for_pvwait)
time.sleep(0.25) # needed, otherwise there can be a timing issue with reset/calc_angle.
self.calculator.calc_reset.put(0)
if mode == "AngleToEnergy":
self.calculator.calc_angle.put(inp)
in_signal = self.calculator.calc_angle
out_signal = self.calculator.calc_energy
elif mode == "EnergyToAngle":
self.calculator.calc_energy.put(inp)
in_signal = self.calculator.calc_energy
out_signal = self.calculator.calc_angle
else:
raise Mo1BraggError(f'Unknown mode {mode}')
in_signal.put(inp)
status = CompareStatus(self.calculator.calc_done, 1)
self.cancel_on_stop(status)
status.wait(self.timeout_for_pvwait)
time.sleep(0.25) # TODO needed still? Needed due to update frequency of softIOC
if mode == "AngleToEnergy":
return self.calculator.calc_energy.get()
elif mode == "EnergyToAngle":
return self.calculator.calc_angle.get()
status = CompareStatus(out_signal, 0, operation_success='>')
self.cancel_on_stop(status)
status.wait(self.timeout_for_pvwait)
return out_signal.get()
def set_advanced_xas_settings(
self, low: float, high: float, scan_time: float, p_kink: float, e_kink: float