fix: minor fixes after test at the beamline

This commit is contained in:
x10da
2026-05-28 14:44:54 +02:00
committed by appel_c
parent e52c4d1f85
commit d443f228bc
3 changed files with 15 additions and 40 deletions
+13 -37
View File
@@ -119,14 +119,11 @@ class Mo1Bragg(PSIDeviceBase, Mo1BraggPositioner):
scan_duration = self._scan_parameter("scan_duration")
if scan_name == "xas_simple_scan":
self._raise_for_missing(
scan_name, ["start", "stop", "scan_time", "scan_duration"],
scan_name,
["start", "stop", "scan_time", "scan_duration"],
[start, stop, scan_time, scan_duration],
)
self.set_xas_settings(
low=start,
high=stop,
scan_time=scan_time,
)
self.set_xas_settings(low=start, high=stop, scan_time=scan_time)
self.set_trig_settings(
enable_low=False,
enable_high=False,
@@ -135,9 +132,7 @@ class Mo1Bragg(PSIDeviceBase, Mo1BraggPositioner):
cycle_low=0,
cycle_high=0,
)
self.set_scan_control_settings(
mode=ScanControlMode.SIMPLE, scan_duration=scan_duration
)
self.set_scan_control_settings(mode=ScanControlMode.SIMPLE, scan_duration=scan_duration)
elif scan_name == "xas_simple_scan_with_xrd":
xrd_enable_low = self._scan_parameter("xrd_enable_low", "break_enable_low")
xrd_enable_high = self._scan_parameter("xrd_enable_high", "break_enable_high")
@@ -172,11 +167,7 @@ class Mo1Bragg(PSIDeviceBase, Mo1BraggPositioner):
cycle_high,
],
)
self.set_xas_settings(
low=start,
high=stop,
scan_time=scan_time,
)
self.set_xas_settings(low=start, high=stop, scan_time=scan_time)
self.set_trig_settings(
enable_low=xrd_enable_low,
enable_high=xrd_enable_high,
@@ -185,9 +176,7 @@ class Mo1Bragg(PSIDeviceBase, Mo1BraggPositioner):
cycle_low=cycle_low,
cycle_high=cycle_high,
)
self.set_scan_control_settings(
mode=ScanControlMode.SIMPLE, scan_duration=scan_duration
)
self.set_scan_control_settings(mode=ScanControlMode.SIMPLE, scan_duration=scan_duration)
elif scan_name == "xas_advanced_scan":
p_kink = self._scan_parameter("p_kink")
e_kink = self._scan_parameter("e_kink")
@@ -197,11 +186,7 @@ class Mo1Bragg(PSIDeviceBase, Mo1BraggPositioner):
[start, stop, scan_time, scan_duration, p_kink, e_kink],
)
self.set_advanced_xas_settings(
low=start,
high=stop,
scan_time=scan_time,
p_kink=p_kink,
e_kink=e_kink,
low=start, high=stop, scan_time=scan_time, p_kink=p_kink, e_kink=e_kink
)
self.set_trig_settings(
enable_low=False,
@@ -255,11 +240,7 @@ class Mo1Bragg(PSIDeviceBase, Mo1BraggPositioner):
],
)
self.set_advanced_xas_settings(
low=start,
high=stop,
scan_time=scan_time,
p_kink=p_kink,
e_kink=e_kink,
low=start, high=stop, scan_time=scan_time, p_kink=p_kink, e_kink=e_kink
)
self.set_trig_settings(
enable_low=xrd_enable_low,
@@ -283,7 +264,7 @@ class Mo1Bragg(PSIDeviceBase, Mo1BraggPositioner):
status = CompareStatus(self.scan_control.scan_msg, ScanControlLoadMessage.SUCCESS)
self.cancel_on_stop(status)
self.scan_control.scan_load.put(1)
# Wait for params to be checked from controller
# Wait for params to be checked from controller
status.wait(self.timeout_for_pvwait)
return None
@@ -366,12 +347,7 @@ class Mo1Bragg(PSIDeviceBase, Mo1BraggPositioner):
getattr(self.scan_info.msg, "scan_parameters", {}),
]
request_inputs = self.scan_parameters.request_inputs or {}
sources.extend(
[
request_inputs.get("inputs", {}),
request_inputs.get("kwargs", {}),
]
)
sources.extend([request_inputs.get("inputs", {}), request_inputs.get("kwargs", {})])
for source in sources:
for name in names:
if isinstance(source, dict) and name in source:
@@ -421,7 +397,7 @@ class Mo1Bragg(PSIDeviceBase, Mo1BraggPositioner):
status_list.append(self.scan_settings.s_scan_scantime.set(scan_time))
self.cancel_on_stop(status_list[-1])
for s in status_list:
s.wait(timeout=self.timeout_for_pvwait)
@@ -443,6 +419,7 @@ class Mo1Bragg(PSIDeviceBase, Mo1BraggPositioner):
status = CompareStatus(self.calculator.calc_done, 0)
self.cancel_on_stop(status)
status.wait(self.timeout_for_pvwait)
time.sleep(0.25)
if mode == "AngleToEnergy":
self.calculator.calc_angle.put(inp)
@@ -452,7 +429,7 @@ class Mo1Bragg(PSIDeviceBase, Mo1BraggPositioner):
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
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":
@@ -542,7 +519,6 @@ class Mo1Bragg(PSIDeviceBase, Mo1BraggPositioner):
for s in status_list:
s.wait(timeout=self.timeout_for_pvwait)
def set_scan_control_settings(self, mode: ScanControlMode, scan_duration: float) -> None:
"""Set the scan control settings for the upcoming scan.
@@ -165,7 +165,7 @@ class Mo1TriggerSettings(Device):
class Mo1BraggCalculator(Device):
"""Mo1 Bragg PVs to convert angle to energy or vice-versa."""
calc_reset = Cpt(EpicsSignal, suffix="calc_reset", kind="config", put_complete=True)
calc_reset = Cpt(EpicsSignalWithRBV, suffix="calc_reset", kind="config", put_complete=True)
calc_done = Cpt(EpicsSignalRO, suffix="calc_done_RBV", kind="config")
calc_energy = Cpt(EpicsSignalWithRBV, suffix="calc_energy", kind="config")
calc_angle = Cpt(EpicsSignalWithRBV, suffix="calc_angle", kind="config")
+1 -2
View File
@@ -76,7 +76,7 @@ class XASSimpleScan(ScanBase):
self.mo1_bragg = self._resolve_device(motor, "mo1_bragg")
self.motor = self.mo1_bragg
self.daq = self._resolve_device(daq, "nidaq")
self.mo1_gonio = self._resolve_device(gonio, "mo1_gonio")
self.mo1_gonio = self._resolve_device(gonio, "mo1_rotx")
self.monitored_readout_cycle = monitored_readout_cycle
self.positions = np.array([self.start, self.stop], dtype=float)
@@ -199,4 +199,3 @@ class XASAdvancedScan(XASSimpleScan):
**kwargs,
)
self.update_scan_info(p_kink=p_kink, e_kink=e_kink)