attach spreadsheet interface to SFAcquisition and Scanner
This commit is contained in:
@@ -16,9 +16,10 @@ from .detcfg import DetectorConfig
|
||||
|
||||
class SFAcquisition(BaseAcquisition):
|
||||
|
||||
def __init__(self, instrument, pgroup, default_data_base_dir="static_data", default_detectors=None, default_channels=None, default_pvs=None, api_address="http://sf-daq:10002", rate_multiplicator=1, append_user_tag_to_data_dir=False):
|
||||
def __init__(self, instrument, pgroup, default_data_base_dir="static_data", default_detectors=None, default_channels=None, default_pvs=None, api_address="http://sf-daq:10002", rate_multiplicator=1, append_user_tag_to_data_dir=False, spreadsheet=None):
|
||||
self.instrument = instrument
|
||||
self.default_data_base_dir = default_data_base_dir
|
||||
self.spreadsheet = spreadsheet
|
||||
|
||||
if not default_channels:
|
||||
paths = SwissFELPaths(instrument, pgroup)
|
||||
@@ -77,6 +78,9 @@ class SFAcquisition(BaseAcquisition):
|
||||
paths = SwissFELPaths(self.instrument, self.pgroup)
|
||||
|
||||
def _acquire():
|
||||
if not is_scan_step:
|
||||
if self.spreadsheet is not None:
|
||||
self.spreadsheet.add(run_number, filename, n_pulses)
|
||||
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")
|
||||
|
||||
@@ -130,6 +130,13 @@ class ScanBackend:
|
||||
if is_sfdaq(acq):
|
||||
run_number = acq.client.next_run()
|
||||
print(f"Advanced run number to {run_number} for {acq}.")
|
||||
if acq.spreadsheet is not None:
|
||||
vals = self.values
|
||||
acq.spreadsheet.add(
|
||||
run_number, self.filename, self.n_pulses_per_step,
|
||||
scanned_adjs=self.adjustables,
|
||||
v_min=min(vals), v_max=max(vals), n_steps=len(vals)
|
||||
)
|
||||
|
||||
values = self.values
|
||||
ntotal = len(values)
|
||||
|
||||
Reference in New Issue
Block a user