fix: add wait for kickoff call, ensures complete to not be called too early

This commit is contained in:
2024-08-07 21:10:10 +02:00
parent adb94e2b75
commit 58f6510d86
2 changed files with 48 additions and 33 deletions

View File

@@ -80,7 +80,8 @@ class XASSimpleScan(AsyncFlyScanBase):
Kickoff the oscillation on the Bragg motor and wait for the completion of the motion.
"""
# Start the oscillation on the Bragg motor.
yield from self.stubs.kickoff(device=self.motor)
yield from self.stubs.kickoff(device=self.motor, wait_group="kickoff")
yield from self.stubs.wait(wait_type="move", device=self.motor, wait_group="kickoff")
yield from self.stubs.complete(device=self.motor)
# Get the target DIID (instruction number) for the stubs.complete call
@@ -145,10 +146,10 @@ class XASSimpleScanWithXRD(XASSimpleScan):
exp_time_high (float): Exposure time for the high energy range.
cycle_high (int): Specify how often the triggers should be considered, every nth cycle for high
motor (DeviceBase, optional): Motor device to be used for the scan. Defaults to "mo1_bragg".
Examples:
>>> scans.xas_simple_scan_with_xrd(start=8000, stop=9000, scan_time=1, scan_duration=10, xrd_enable_low=True, num_trigger_low=5, cycle_low=2, exp_time_low=100, xrd_enable_high=False, num_trigger_high=3, cycle_high=1, exp_time_high=1000)
"""
"""
super().__init__(
start=start,
stop=stop,

View File

@@ -27,6 +27,8 @@ def test_xas_simple_scan():
continue
if "RID" in cmd.metadata:
cmd.metadata["RID"] = "my_test_request_id"
if "DIID" in cmd.metadata:
cmd.metadata.pop("DIID")
if "rpc_id" in cmd.parameter:
cmd.parameter["rpc_id"] = "my_test_rpc_id"
@@ -34,13 +36,13 @@ def test_xas_simple_scan():
None,
None,
DeviceInstructionMessage(
metadata={"readout_priority": "monitored", "DIID": 0, "RID": "my_test_request_id"},
metadata={"readout_priority": "monitored", "RID": "my_test_request_id"},
device=None,
action="scan_report_instruction",
parameter={"device_progress": ["mo1_bragg"]},
),
DeviceInstructionMessage(
metadata={"readout_priority": "monitored", "DIID": 1, "RID": "my_test_request_id"},
metadata={"readout_priority": "monitored", "RID": "my_test_request_id"},
device=None,
action="open_scan",
parameter={
@@ -58,13 +60,13 @@ def test_xas_simple_scan():
},
),
DeviceInstructionMessage(
metadata={"readout_priority": "monitored", "DIID": 2, "RID": "my_test_request_id"},
metadata={"readout_priority": "monitored", "RID": "my_test_request_id"},
device=None,
action="stage",
parameter={},
),
DeviceInstructionMessage(
metadata={"readout_priority": "baseline", "DIID": 3, "RID": "my_test_request_id"},
metadata={"readout_priority": "baseline", "RID": "my_test_request_id"},
device=None,
action="baseline_reading",
parameter={},
@@ -72,7 +74,6 @@ def test_xas_simple_scan():
DeviceInstructionMessage(
metadata={
"readout_priority": "monitored",
"DIID": 4,
"RID": "my_test_request_id",
"response": True,
},
@@ -87,61 +88,67 @@ def test_xas_simple_scan():
},
),
DeviceInstructionMessage(
metadata={"readout_priority": "monitored", "DIID": 5, "RID": "my_test_request_id"},
metadata={"readout_priority": "monitored", "RID": "my_test_request_id"},
device="mo1_bragg",
action="kickoff",
parameter={"configure": {}, "wait_group": "kickoff"},
),
DeviceInstructionMessage(
metadata={"readout_priority": "monitored", "DIID": 6, "RID": "my_test_request_id"},
metadata={"readout_priority": "monitored", "RID": "my_test_request_id"},
device="mo1_bragg",
action="wait",
parameter={"type": "move", "wait_group": "kickoff"},
),
DeviceInstructionMessage(
metadata={"readout_priority": "monitored", "RID": "my_test_request_id"},
device="mo1_bragg",
action="complete",
parameter={},
),
DeviceInstructionMessage(
metadata={"readout_priority": "monitored", "DIID": 7, "RID": "my_test_request_id"},
metadata={"readout_priority": "monitored", "RID": "my_test_request_id"},
device=None,
action="read",
parameter={"group": "primary", "wait_group": "readout_primary"},
),
DeviceInstructionMessage(
metadata={"readout_priority": "monitored", "DIID": 8, "RID": "my_test_request_id"},
metadata={"readout_priority": "monitored", "RID": "my_test_request_id"},
device=None,
action="wait",
parameter={"type": "read", "group": "primary", "wait_group": "readout_primary"},
),
DeviceInstructionMessage(
metadata={"readout_priority": "monitored", "DIID": 9, "RID": "my_test_request_id"},
metadata={"readout_priority": "monitored", "RID": "my_test_request_id"},
device=None,
action="read",
parameter={"group": "primary", "wait_group": "readout_primary"},
),
DeviceInstructionMessage(
metadata={"readout_priority": "monitored", "DIID": 10, "RID": "my_test_request_id"},
metadata={"readout_priority": "monitored", "RID": "my_test_request_id"},
device=None,
action="wait",
parameter={"type": "read", "group": "primary", "wait_group": "readout_primary"},
),
DeviceInstructionMessage(
metadata={"readout_priority": "monitored", "DIID": 11, "RID": "my_test_request_id"},
metadata={"readout_priority": "monitored", "RID": "my_test_request_id"},
device=None,
action="wait",
parameter={"type": "read", "group": "primary", "wait_group": "readout_primary"},
),
DeviceInstructionMessage(
metadata={"readout_priority": "monitored", "DIID": 12, "RID": "my_test_request_id"},
metadata={"readout_priority": "monitored", "RID": "my_test_request_id"},
device=None,
action="complete",
parameter={},
),
DeviceInstructionMessage(
metadata={"readout_priority": "monitored", "DIID": 13, "RID": "my_test_request_id"},
metadata={"readout_priority": "monitored", "RID": "my_test_request_id"},
device=None,
action="unstage",
parameter={},
),
DeviceInstructionMessage(
metadata={"readout_priority": "monitored", "DIID": 14, "RID": "my_test_request_id"},
metadata={"readout_priority": "monitored", "RID": "my_test_request_id"},
device=None,
action="close_scan",
parameter={},
@@ -181,6 +188,8 @@ def test_xas_simple_scan_with_xrd():
continue
if "RID" in cmd.metadata:
cmd.metadata["RID"] = "my_test_request_id"
if "DIID" in cmd.metadata:
cmd.metadata.pop("DIID")
if "rpc_id" in cmd.parameter:
cmd.parameter["rpc_id"] = "my_test_rpc_id"
@@ -188,13 +197,13 @@ def test_xas_simple_scan_with_xrd():
None,
None,
DeviceInstructionMessage(
metadata={"readout_priority": "monitored", "DIID": 0, "RID": "my_test_request_id"},
metadata={"readout_priority": "monitored", "RID": "my_test_request_id"},
device=None,
action="scan_report_instruction",
parameter={"device_progress": ["mo1_bragg"]},
),
DeviceInstructionMessage(
metadata={"readout_priority": "monitored", "DIID": 1, "RID": "my_test_request_id"},
metadata={"readout_priority": "monitored", "RID": "my_test_request_id"},
device=None,
action="open_scan",
parameter={
@@ -212,13 +221,13 @@ def test_xas_simple_scan_with_xrd():
},
),
DeviceInstructionMessage(
metadata={"readout_priority": "monitored", "DIID": 2, "RID": "my_test_request_id"},
metadata={"readout_priority": "monitored", "RID": "my_test_request_id"},
device=None,
action="stage",
parameter={},
),
DeviceInstructionMessage(
metadata={"readout_priority": "baseline", "DIID": 3, "RID": "my_test_request_id"},
metadata={"readout_priority": "baseline", "RID": "my_test_request_id"},
device=None,
action="baseline_reading",
parameter={},
@@ -226,7 +235,6 @@ def test_xas_simple_scan_with_xrd():
DeviceInstructionMessage(
metadata={
"readout_priority": "monitored",
"DIID": 4,
"RID": "my_test_request_id",
"response": True,
},
@@ -241,61 +249,67 @@ def test_xas_simple_scan_with_xrd():
},
),
DeviceInstructionMessage(
metadata={"readout_priority": "monitored", "DIID": 5, "RID": "my_test_request_id"},
metadata={"readout_priority": "monitored", "RID": "my_test_request_id"},
device="mo1_bragg",
action="kickoff",
parameter={"configure": {}, "wait_group": "kickoff"},
),
DeviceInstructionMessage(
metadata={"readout_priority": "monitored", "DIID": 6, "RID": "my_test_request_id"},
metadata={"readout_priority": "monitored", "RID": "my_test_request_id"},
device="mo1_bragg",
action="wait",
parameter={"type": "move", "wait_group": "kickoff"},
),
DeviceInstructionMessage(
metadata={"readout_priority": "monitored", "RID": "my_test_request_id"},
device="mo1_bragg",
action="complete",
parameter={},
),
DeviceInstructionMessage(
metadata={"readout_priority": "monitored", "DIID": 7, "RID": "my_test_request_id"},
metadata={"readout_priority": "monitored", "RID": "my_test_request_id"},
device=None,
action="read",
parameter={"group": "primary", "wait_group": "readout_primary"},
),
DeviceInstructionMessage(
metadata={"readout_priority": "monitored", "DIID": 8, "RID": "my_test_request_id"},
metadata={"readout_priority": "monitored", "RID": "my_test_request_id"},
device=None,
action="wait",
parameter={"type": "read", "group": "primary", "wait_group": "readout_primary"},
),
DeviceInstructionMessage(
metadata={"readout_priority": "monitored", "DIID": 9, "RID": "my_test_request_id"},
metadata={"readout_priority": "monitored", "RID": "my_test_request_id"},
device=None,
action="read",
parameter={"group": "primary", "wait_group": "readout_primary"},
),
DeviceInstructionMessage(
metadata={"readout_priority": "monitored", "DIID": 10, "RID": "my_test_request_id"},
metadata={"readout_priority": "monitored", "RID": "my_test_request_id"},
device=None,
action="wait",
parameter={"type": "read", "group": "primary", "wait_group": "readout_primary"},
),
DeviceInstructionMessage(
metadata={"readout_priority": "monitored", "DIID": 11, "RID": "my_test_request_id"},
metadata={"readout_priority": "monitored", "RID": "my_test_request_id"},
device=None,
action="wait",
parameter={"type": "read", "group": "primary", "wait_group": "readout_primary"},
),
DeviceInstructionMessage(
metadata={"readout_priority": "monitored", "DIID": 12, "RID": "my_test_request_id"},
metadata={"readout_priority": "monitored", "RID": "my_test_request_id"},
device=None,
action="complete",
parameter={},
),
DeviceInstructionMessage(
metadata={"readout_priority": "monitored", "DIID": 13, "RID": "my_test_request_id"},
metadata={"readout_priority": "monitored", "RID": "my_test_request_id"},
device=None,
action="unstage",
parameter={},
),
DeviceInstructionMessage(
metadata={"readout_priority": "monitored", "DIID": 14, "RID": "my_test_request_id"},
metadata={"readout_priority": "monitored", "RID": "my_test_request_id"},
device=None,
action="close_scan",
parameter={},