diff --git a/slic/core/acquisition/acquisition.py b/slic/core/acquisition/acquisition.py index 720b53942..a64bdc864 100644 --- a/slic/core/acquisition/acquisition.py +++ b/slic/core/acquisition/acquisition.py @@ -11,7 +11,7 @@ from .sfpaths import SwissFELPaths class Acquisition(BaseAcquisition): - def __init__(self, instrument, pgroup, default_channels=None, default_dir=None): + def __init__(self, instrument, pgroup, default_channels=None, default_dir=None, default_data_base_dir="static_data"): self.instrument = instrument self.pgroup = pgroup @@ -30,7 +30,14 @@ class Acquisition(BaseAcquisition): self.current_task = None - def acquire(self, filename=None, channels=None, use_default_dir=True, wait=True, **kwargs): + def acquire(self, filename=None, channels=None, use_default_dir=True, data_base_dir=None, wait=True, **kwargs): + if data_base_dir is None: + print("No base directory specified, using default base directory.") + data_base_dir = self.default_data_base_dir + + if filename: + filename = os.path.join(data_base_dir, filename) + if filename and use_default_dir: filename = os.path.join(self.default_dir, filename) diff --git a/slic/core/acquisition/fakeacquisition.py b/slic/core/acquisition/fakeacquisition.py index 224540310..6b54451cd 100644 --- a/slic/core/acquisition/fakeacquisition.py +++ b/slic/core/acquisition/fakeacquisition.py @@ -1,3 +1,4 @@ +import os import random from time import sleep from tqdm import trange @@ -14,6 +15,8 @@ class FakeAcquisition(BaseAcquisition): self.instrument = instrument self.pgroup = pgroup + self.default_data_base_dir = "static_data" + self.default_detectors = shuffle([f"JFJFJFJFJFJFJFJFJFJF{i}" for i in range(2)]) self.default_channels = shuffle([f"CHCHCHCHCH{i}" for i in range(100)]) self.default_pvs = shuffle([f"PVPV{i}" for i in range(10)]) @@ -21,13 +24,18 @@ class FakeAcquisition(BaseAcquisition): self._stop() - def acquire(self, filename, detectors=None, channels=None, pvs=None, scan_info=None, n_pulses=100, wait=True): + def acquire(self, filename, data_base_dir=None, detectors=None, channels=None, pvs=None, scan_info=None, n_pulses=100, wait=True): + if data_base_dir is None: + print("No base directory specified, using default base directory.") + data_base_dir = self.default_data_base_dir + + filename = os.path.join(data_base_dir, filename) def _acquire(): args = (filename, n_pulses) args = ", ".join(repr(i) for i in args) print("acquire({})".format(args)) - print(f"acquire to {filename}:") + print(f"fake acquire to {filename}:") self.running = True for i in trange(n_pulses): if not self.running: