counter -> acquisition
This commit is contained in:
@@ -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:
|
||||
@@ -1,7 +0,0 @@
|
||||
|
||||
from .bscounter import BSCounter
|
||||
from .dbcounter import DBCounter
|
||||
from .diacounter import DIACounter
|
||||
from .pvcounter import PVCounter
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user