first try on retrieval of only specific pids

This commit is contained in:
2022-11-14 12:25:17 +01:00
parent 5da8cc30f3
commit bc366d6b62
+31
View File
@@ -91,6 +91,37 @@ class SFAcquisition(BaseAcquisition):
return task
#TODO: only a first try
def retrieve(self, filename, pulseids):
start_pulseid = min(pulseids)
stop_pulseid = max(pulseids)
client = self.client
rate_multiplicator = client.config.rate_multiplicator
start_pulseid = align_pid_left(current_pulseid, rate_multiplicator)
stop_pulseid = align_pid_right(stop_pulseid, rate_multiplicator)
client.config.set(filename, detectors=self.default_detectors, channels=self.default_channels, pvs=self.default_pvs)
run_number = client.next_run()
params = client.get_config(run_number, start_pulseid, stop_pulseid)
params["selected_pulse_ids"] = pulseids #TODO: only if not continuous range of values
res = retrieve(client.address, params, timeout=client.timeout)
res_run_number = res["run_number"]
assert res_run_number == run_number, f"received {res_run_number} and expected {run_number} run numbers not identical"
res = transpose_dicts(res)
filenames = res.pop("filenames")
print_response(res)
return res
@property
def pgroup(self):
return self.client.config.pgroup