fix: mo1_bragg calculator
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user