diff --git a/superxas_bec/devices/mo1_bragg/mo1_bragg.py b/superxas_bec/devices/mo1_bragg/mo1_bragg.py index 89b1abf..d50ef91 100644 --- a/superxas_bec/devices/mo1_bragg/mo1_bragg.py +++ b/superxas_bec/devices/mo1_bragg/mo1_bragg.py @@ -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. diff --git a/superxas_bec/devices/mo1_bragg/mo1_bragg_devices.py b/superxas_bec/devices/mo1_bragg/mo1_bragg_devices.py index 7fafbe0..fed7c1c 100644 --- a/superxas_bec/devices/mo1_bragg/mo1_bragg_devices.py +++ b/superxas_bec/devices/mo1_bragg/mo1_bragg_devices.py @@ -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") diff --git a/superxas_bec/scans/mono_bragg_scans.py b/superxas_bec/scans/mono_bragg_scans.py index 458b066..8f691f5 100644 --- a/superxas_bec/scans/mono_bragg_scans.py +++ b/superxas_bec/scans/mono_bragg_scans.py @@ -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) -