diff --git a/dap/algos/jfdata.py b/dap/algos/jfdata.py index df520a6..7d6848e 100644 --- a/dap/algos/jfdata.py +++ b/dap/algos/jfdata.py @@ -13,6 +13,19 @@ class JFData: self.pixel_mask_pf = None + def refresh_pixel_mask(self): + pixel_mask_current = self.ju_stream_adapter.handler.pixel_mask + self.ju_stream_adapter.handler.pixel_mask = pixel_mask_current + + + def process(self, image, metadata, double_pixels): + return self.ju_stream_adapter.process(image, metadata, double_pixels=double_pixels) + + + def has_pedestal_file(self): + return bool(self.ju_stream_adapter.handler.pedestal_file) + + def get_pixel_mask(self, results, double_pixels): pixel_mask_corrected = self.ju_stream_adapter.handler.get_pixel_mask(double_pixels=double_pixels) if pixel_mask_corrected is None: diff --git a/dap/worker.py b/dap/worker.py index c5825bc..dfd2839 100644 --- a/dap/worker.py +++ b/dap/worker.py @@ -48,7 +48,6 @@ def work(backend_address, accumulator_host, accumulator_port, visualisation_host pulse_id = 0 jfdata = JFData() - ju_stream_adapter = jfdata.ju_stream_adapter zmq_socks = ZMQSockets(backend_address, accumulator_host, accumulator_port, visualisation_host, visualisation_port) @@ -114,15 +113,15 @@ def work(backend_address, accumulator_host, accumulator_port, visualisation_host double_pixels = results.get("double_pixels", "mask") pedestal_name = metadata.get("pedestal_name", None) + if pedestal_name is not None and pedestal_name != pedestal_name_saved: - pixel_mask_current = ju_stream_adapter.handler.pixel_mask - ju_stream_adapter.handler.pixel_mask = pixel_mask_current + jfdata.refresh_pixel_mask() pedestal_name_saved = pedestal_name - data = ju_stream_adapter.process(image, metadata, double_pixels=double_pixels) + data = jfdata.process(image, metadata, double_pixels) - # pedestal file is not in stream, skip this frame - if not ju_stream_adapter.handler.pedestal_file: + # the pedestal file is loaded in process(), this check needs to be afterwards + if not jfdata.has_pedestal_file(): continue data = np.ascontiguousarray(data)