fix: online changes

This commit is contained in:
2023-09-01 09:33:35 +02:00
parent 08efb6405b
commit b6101cced2
4 changed files with 21 additions and 17 deletions

View File

@@ -190,6 +190,7 @@ class DelayGeneratorDG645(Device):
EpicsSignal, "BurstPeriodAI", write_pv="BurstPeriodAO", name="burstperiod", kind=Kind.config
)
# bec_utils device ConfigSignal
delay_burst = Component(
bec_utils.ConfigSignal, name="delay_burst", kind="config", config_storage_name="ddg_configs"
)

View File

@@ -8,6 +8,7 @@ class BecScaninfoMixin:
self.device_manager = device_manager
self.sim_mode = sim_mode
self.scan_msg = None
self.scanID = None
self.bec_info_msg = {
"RID": "mockrid",
"queueID": "mockqueuid",
@@ -27,6 +28,7 @@ class BecScaninfoMixin:
def _get_current_scan_msg(self) -> BECMessage.ScanStatusMessage:
if not self.sim_mode:
# TODO what if no scan info is there yet!
msg = self.device_manager.producer.get(MessageEndpoints.scan_status())
return BECMessage.ScanStatusMessage.loads(msg)

View File

@@ -138,6 +138,7 @@ class Eiger9mCsaxs(DetectorBase):
self.device_manager = bec_utils.MockDeviceManager()
self.scaninfo = BecScaninfoMixin(device_manager, sim_mode)
# TODO
self.filepath = ""
self.scaninfo.username = "e21206"
self.service_cfg = {"base_path": f"/sls/X12SA/data/{self.scaninfo.username}/Data10/"}
self.filewriter = FileWriterMixin(self.service_cfg)

View File

@@ -162,7 +162,9 @@ class McsCsaxs(SIS38XX):
)
if device_manager is None and not sim_mode:
raise MCSError("Add DeviceManager to initialization or init with sim_mode=True")
raise MCSError(
"Add DeviceManager to initialization or init with sim_mode=True"
)
self.name = name
self._stream_ttl = 1800
@@ -179,7 +181,9 @@ class McsCsaxs(SIS38XX):
self.scaninfo = BecScaninfoMixin(device_manager, sim_mode)
# TODO
self.scaninfo.username = "e21206"
self.service_cfg = {"base_path": f"/sls/X12SA/data/{self.scaninfo.username}/Data10/"}
self.service_cfg = {
"base_path": f"/sls/X12SA/data/{self.scaninfo.username}/Data10/"
}
self.filewriter = FileWriterMixin(self.service_cfg)
self._stopped = False
self._acquisition_done = False
@@ -201,7 +205,9 @@ class McsCsaxs(SIS38XX):
self._set_trigger(TriggerSource.MODE3)
self.input_polarity.set(0)
self.count_on_start.set(0)
self.mca_names = [signal for signal in self.component_names if signal.startswith("mca")]
self.mca_names = [
signal for signal in self.component_names if signal.startswith("mca")
]
self.mca_data = defaultdict(lambda: [])
for mca in self.mca_names:
signal = getattr(self, mca)
@@ -220,12 +226,14 @@ class McsCsaxs(SIS38XX):
return
self._updated = True
self.erase_start.set(1)
self._send_data_to_bec()
self.mca_data = defaultdict(lambda: [])
self.counter += 1
if self.counter == self.num_lines.get():
self._acquisition_done = True
self._send_data_to_bec()
self.stop_all.put(1, use_complete=False)
self.erase_start.set(1)
self._send_data_to_bec()
self.mca_data = defaultdict(lambda: [])
def _send_data_to_bec(self) -> None:
if self.scaninfo.scan_msg is None:
@@ -255,7 +263,9 @@ class McsCsaxs(SIS38XX):
def _set_acquisition_params(self) -> None:
n_points = self.scaninfo.num_frames / int(self.num_lines.get())
if n_points > 10000:
raise MCSError(f"Requested number of points {n_points} exceeds hardware limit of 10000")
raise MCSError(
f"Requested number of points {n_points} exceeds hardware limit of 10000"
)
self.num_use_all.set(n_points)
self.preset_real.set(0)
@@ -329,16 +339,6 @@ class McsCsaxs(SIS38XX):
if self._stopped:
break
time.sleep(0.005)
# Message to BEC
# state = True
# msg = BECMessage.FileMessage(file_path=self.filepath, done=True, successful=state)
# self._producer.set_and_publish(
# MessageEndpoints.public_file(self.metadata["scanID"], self.name),
# msg.dumps(),
# )
self._acquisition_done = False
self._stopped = False
logger.info("mcs done")