Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1a20282499 | |||
| 1a6eb5ab90 | |||
| ea23ab2284 | |||
| 52d97b2d29 |
@@ -416,25 +416,31 @@ class Mo1Bragg(PSIDeviceBase, Mo1BraggPositioner):
|
|||||||
Returns:
|
Returns:
|
||||||
output (float): Converted angle or energy
|
output (float): Converted angle or energy
|
||||||
"""
|
"""
|
||||||
|
|
||||||
self.calculator.calc_reset.put(0)
|
self.calculator.calc_reset.put(0)
|
||||||
self.calculator.calc_reset.put(1)
|
self.calculator.calc_reset.put(1)
|
||||||
status = CompareStatus(self.calculator.calc_done, 0)
|
status = CompareStatus(self.calculator.calc_done, 0)
|
||||||
self.cancel_on_stop(status)
|
self.cancel_on_stop(status)
|
||||||
status.wait(self.timeout_for_pvwait)
|
status.wait(self.timeout_for_pvwait)
|
||||||
|
self.calculator.calc_reset.put(0)
|
||||||
|
|
||||||
if mode == "AngleToEnergy":
|
if mode == "AngleToEnergy":
|
||||||
self.calculator.calc_angle.put(inp)
|
in_signal = self.calculator.calc_angle
|
||||||
|
out_signal = self.calculator.calc_energy
|
||||||
elif mode == "EnergyToAngle":
|
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)
|
status = CompareStatus(self.calculator.calc_done, 1)
|
||||||
self.cancel_on_stop(status)
|
self.cancel_on_stop(status)
|
||||||
status.wait(self.timeout_for_pvwait)
|
status.wait(self.timeout_for_pvwait)
|
||||||
time.sleep(0.25) # TODO needed still? Needed due to update frequency of softIOC
|
status = CompareStatus(out_signal, 0, operation_success='>')
|
||||||
if mode == "AngleToEnergy":
|
self.cancel_on_stop(status)
|
||||||
return self.calculator.calc_energy.get()
|
status.wait(self.timeout_for_pvwait)
|
||||||
elif mode == "EnergyToAngle":
|
return out_signal.get()
|
||||||
return self.calculator.calc_angle.get()
|
|
||||||
|
|
||||||
def set_advanced_xas_settings(
|
def set_advanced_xas_settings(
|
||||||
self, low: float, high: float, scan_time: float, p_kink: float, e_kink: float
|
self, low: float, high: float, scan_time: float, p_kink: float, e_kink: float
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ def fetch_scan_info(scan_info: ScanInfo) -> ScanServerScanInfo:
|
|||||||
info = scan_info.msg.info
|
info = scan_info.msg.info
|
||||||
if isinstance(info["positions"], list):
|
if isinstance(info["positions"], list):
|
||||||
info["positions"] = np.array(info["positions"])
|
info["positions"] = np.array(info["positions"])
|
||||||
|
info["num_monitored_readouts"] = scan_info.msg.num_monitored_readouts
|
||||||
try:
|
try:
|
||||||
msg = ScanServerScanInfo.model_validate(info)
|
msg = ScanServerScanInfo.model_validate(info)
|
||||||
except ValidationError: # This means we have an old scan_info object.
|
except ValidationError: # This means we have an old scan_info object.
|
||||||
|
|||||||
Reference in New Issue
Block a user