Skip to content
Snippets Groups Projects
Commit 1a655dcc authored by David Hammer's avatar David Hammer
Browse files

New handling of invalid arrays from DAQ (need Karabo >= 2.14.1)

parent 385420de
No related branches found
No related tags found
1 merge request!12Snapshot: field test deployed version as of end of run 202201
......@@ -924,13 +924,19 @@ class BaseCorrection(PythonDevice):
if source not in self.sources:
self.log_status_info(f"Ignoring hash with unknown source {source}")
return
continue
elif not data_hash.has(self._image_data_path):
self.log_status_info("Ignoring hash without image node")
return
elif len(self.input_data_shape) != len(data_hash.get(f"{self._image_data_path}.shape")):
self.log_status_info("DAQ probably not sending data")
return
continue
try:
image_data = data_hash.get(self._image_data_path)
cell_table = data_hash.get(self._cell_table_path).ravel()
except RuntimeError as err:
self.log_status_info(
f"Failed to load image data; probably empty hash from DAQ: {err}"
)
continue
# no more common reasons to skip input, so go to processing
if state is State.ON:
......@@ -939,7 +945,6 @@ class BaseCorrection(PythonDevice):
train_id = metadata.getAttribute("timestamp", "tid")
self._train_ratio_tracker.update(train_id)
cell_table = data_hash.get(self._cell_table_path).ravel()
if self.unsafe_get("constantParameters.memoryCells") <= cell_table.max():
self.log_status_warn("Input cell IDs out of range of constants")
......@@ -951,7 +956,6 @@ class BaseCorrection(PythonDevice):
self.set("dataFormat.memoryCells", cell_table.size)
self._lock_and_update_in_background(self._update_frame_filter)
image_data = data_hash.get(self._image_data_path)
# DataAggregator typically tells us the wrong axis order
if self.unsafe_get("dataFormat.overrideInputAxisOrder"):
expected_shape = self.input_data_shape
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment