counter -> acquisition

This commit is contained in:
2020-05-03 18:03:29 +00:00
parent 21dae3d3c2
commit c252df1f77
13 changed files with 31 additions and 31 deletions
+7
View File
@@ -0,0 +1,7 @@
from .bsacquisition import BSAcquisition
from .dbacquisition import DBAcquisition
from .diaacquisition import DIAAcquisition
from .pvacquisition import PVAcquisition
@@ -3,12 +3,12 @@ from abc import abstractmethod
from ..utils.channels import Channels
from slic.task import Task
from .basecounter import BaseCounter
from .baseacquisition import BaseAcquisition
from .utils import can_create_file, fix_hdf5_filename, SwissFELPaths
from slic.utils import typename
class Counter(BaseCounter):
class Acquisition(BaseAcquisition):
def __init__(self, instrument, pgroup, default_channels=None, default_dir=None):
self.instrument = instrument
@@ -1,7 +1,7 @@
from abc import ABC, abstractmethod
class BaseCounter(ABC):
class BaseAcquisition(ABC):
@abstractmethod
def acquire(self):
@@ -3,11 +3,11 @@ import zmq
from bsread.h5 import receive
from bsread.avail import dispatcher
from .counter import Counter
from .acquisition import Acquisition
class BSCounter(Counter):
class BSAcquisition(Acquisition):
def _acquire(self, *args, **kwargs):
bsread_to_h5(*args, **kwargs)
@@ -2,11 +2,11 @@ from datetime import datetime, timedelta
import data_api as dapi
from .counter import Counter
from .acquisition import Acquisition
class DBCounter(Counter):
class DBAcquisition(Acquisition):
def _acquire(self, *args, **kwargs):
dapi_to_h5(*args, **kwargs)
@@ -6,7 +6,7 @@ from detector_integration_api import DetectorIntegrationClient
from ..utils.channels import Channels
from ..utils.printing import printable_dict_of_dicts
from slic.task import Task
from .basecounter import BaseCounter
from .baseacquisition import BaseAcquisition
from .utils import can_create_file, SwissFELPaths
from .pedestals import find_last_pedestal, take_pedestal
@@ -19,7 +19,7 @@ EXPTIME = {
class DIACounter(BaseCounter):
class DIAAcquisition(BaseAcquisition):
def __init__(self, instrument, pgroup, default_channels=None, default_dir=None, api_address=None):
self.instrument = instrument
@@ -2,11 +2,11 @@ from time import sleep
import numpy as np
from epics import PV
from .counter import Counter
from .acquisition import Acquisition
class PVCounter(Counter):
class PVAcquisition(Acquisition):
def _acquire(self, *args, polling=False, **kwargs):
if polling:
-7
View File
@@ -1,7 +0,0 @@
from .bscounter import BSCounter
from .dbcounter import DBCounter
from .diacounter import DIACounter
from .pvcounter import PVCounter
+7 -7
View File
@@ -9,10 +9,10 @@ from ..utils.ask_yes_no import ask_Yes_no
class ScanBackend:
def __init__(self, adjustables, values, counters, filename, n_pulses, data_base_dir, scan_info_dir, make_scan_sub_dir, condition):
def __init__(self, adjustables, values, acquisitions, filename, n_pulses, data_base_dir, scan_info_dir, make_scan_sub_dir, condition):
self.adjustables = adjustables
self.values = values
self.counters = counters
self.acquisitions = acquisitions
self.filename = filename
self.n_pulses_per_step = n_pulses #TODO: to rename or not to rename?
self.data_base_dir = data_base_dir
@@ -58,7 +58,7 @@ class ScanBackend:
print("Moved adjustables, starting acquisition")
fn = self.get_filename(n_step)
step_filenames = self.acquire_all_counters(fn)
step_filenames = self.acquire_all(fn)
print("Acquisition done")
self.scan_info.update(step_values, step_readbacks, step_filenames, step_info)
@@ -67,8 +67,8 @@ class ScanBackend:
def create_output_dirs(self):
make_dir(self.scan_info.base_dir)
for counter in self.counters:
default_dir = counter.default_dir
for acq in self.acquisitions:
default_dir = acq.default_dir
if default_dir is None:
continue
data_dir = default_dir + self.data_base_dir
@@ -86,10 +86,10 @@ class ScanBackend:
return filename
def acquire_all_counters(self, filename):
def acquire_all(self, filename):
acqs = []
filenames = []
for ctr in self.counters:
for ctr in self.acquisitions:
acq = ctr.acquire(filename=filename, n_pulses=self.n_pulses_per_step)
acqs.append(acq)
filenames.extend(acq.filenames)
+6 -6
View File
@@ -13,23 +13,23 @@ def make_positions(start, end, n):
class Scanner:
def __init__(self, data_base_dir="", scan_info_dir="", default_counters=[], condition=None, make_scan_sub_dir=True):
def __init__(self, data_base_dir="", scan_info_dir="", default_acquisitions=[], condition=None, make_scan_sub_dir=True):
self.data_base_dir = data_base_dir
self.scan_info_dir = scan_info_dir
self.default_counters = default_counters
self.default_acquisitions = default_acquisitions
self.condition = condition
self.make_scan_sub_dir = make_scan_sub_dir
self.filename_generator = RunFilenameGenerator(scan_info_dir)
def make_scan(self, adjustables, positions, n_pulses, filename, counters=[], start_immediately=True, step_info=None):
def make_scan(self, adjustables, positions, n_pulses, filename, acquisitions=[], start_immediately=True, step_info=None):
filename = self.filename_generator.get_next_run_filename(filename)
if not counters:
counters = self.default_counters
if not acquisitions:
acquisitions = self.default_acquisitions
s = ScanBackend(adjustables, positions, counters, filename, n_pulses=n_pulses, data_base_dir=self.data_base_dir, scan_info_dir=self.scan_info_dir, make_scan_sub_dir=self.make_scan_sub_dir, condition=self.condition)
s = ScanBackend(adjustables, positions, acquisitions, filename, n_pulses=n_pulses, data_base_dir=self.data_base_dir, scan_info_dir=self.scan_info_dir, make_scan_sub_dir=self.make_scan_sub_dir, condition=self.condition)
if start_immediately:
s.scan(step_info=step_info)