diff --git a/slic/core/acquisition/fakeacquisition.py b/slic/core/acquisition/fakeacquisition.py index d1d11509..93d85bb6 100644 --- a/slic/core/acquisition/fakeacquisition.py +++ b/slic/core/acquisition/fakeacquisition.py @@ -4,7 +4,7 @@ from time import sleep from tqdm import trange from slic.core.task import DAQTask -from slic.utils import typename +from slic.utils import typename, xrange from .baseacquisition import BaseAcquisition @@ -35,7 +35,7 @@ class FakeAcquisition(BaseAcquisition): self._stop() - def acquire(self, filename, data_base_dir=None, detectors=None, channels=None, pvs=None, scan_info=None, n_pulses=100, continuous=False, is_scan_step=False, wait=True): + def acquire(self, filename, data_base_dir=None, detectors=None, channels=None, pvs=None, scan_info=None, n_pulses=100, n_repeat=1, is_scan_step=False, wait=True): if not is_scan_step: run_number = self.client.next_run() print(f"Advanced run number to {run_number}.") @@ -55,9 +55,9 @@ class FakeAcquisition(BaseAcquisition): print("acquire({})".format(args)) print(f"fake acquire to {filename}:") self.running = True - n = 0 - while self.running and (continuous or n == 0): - n += 1 + for n in xrange(n_repeat): + if not self.running: + break for i in trange(n_pulses): if not self.running: break diff --git a/slic/core/acquisition/sfacquisition.py b/slic/core/acquisition/sfacquisition.py index d032ee04..953ede7b 100644 --- a/slic/core/acquisition/sfacquisition.py +++ b/slic/core/acquisition/sfacquisition.py @@ -33,7 +33,7 @@ class SFAcquisition(BaseAcquisition): self.current_task = None - def acquire(self, filename, data_base_dir=None, detectors=None, channels=None, pvs=None, scan_info=None, n_pulses=100, continuous=False, is_scan_step=False, wait=True): + def acquire(self, filename, data_base_dir=None, detectors=None, channels=None, pvs=None, scan_info=None, n_pulses=100, n_repeat=1, is_scan_step=False, wait=True): if not is_scan_step: run_number = self.client.next_run() print(f"Advanced run number to {run_number}.") @@ -73,7 +73,7 @@ class SFAcquisition(BaseAcquisition): paths = SwissFELPaths(self.instrument, self.pgroup) def _acquire(): - res = client.start_continuous() if continuous else client.start() + res = client.start() if n_repeat == 1 else client.start_continuous(n_repeat=n_repeat) res = transpose_dicts(res) #TODO: only for continuous? filenames = res.pop("filenames") print_response(res) diff --git a/slic/gui/daqpanels/run.py b/slic/gui/daqpanels/run.py index 61204ab8..ab57c3e7 100644 --- a/slic/gui/daqpanels/run.py +++ b/slic/gui/daqpanels/run.py @@ -70,8 +70,9 @@ class RunPanel(wx.Panel): n_pulses = correct_n_pulses(rate, n_pulses) continuous = self.cb_contin.IsChecked() + n_repeat = None if continuous else 1 - self.task = self.acquisition.acquire(filename, n_pulses=n_pulses, continuous=continuous, wait=False) + self.task = self.acquisition.acquire(filename, n_pulses=n_pulses, n_repeat=n_repeat, wait=False) def wait(): with printed_exception: