From bc366d6b62e7a1c075c1bafe3f547c72d4e6955d Mon Sep 17 00:00:00 2001 From: Sven Augustin Date: Mon, 14 Nov 2022 12:25:17 +0100 Subject: [PATCH] first try on retrieval of only specific pids --- slic/core/acquisition/sfacquisition.py | 31 ++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/slic/core/acquisition/sfacquisition.py b/slic/core/acquisition/sfacquisition.py index 953ede7b..fd89fbd0 100644 --- a/slic/core/acquisition/sfacquisition.py +++ b/slic/core/acquisition/sfacquisition.py @@ -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