diff --git a/bin/cbf_converter/cbf_converter.py b/bin/cbf_converter/cbf_converter.py index 00870b6..4705539 100644 --- a/bin/cbf_converter/cbf_converter.py +++ b/bin/cbf_converter/cbf_converter.py @@ -3,8 +3,9 @@ from __future__ import annotations import os import subprocess -from bec_lib import MessageEndpoints, RedisConnector, bec_logger, messages -from bec_lib.redis_connector import MessageObject +from bec_lib import bec_logger, messages +from bec_lib.endpoints import MessageEndpoints +from bec_lib.redis_connector import MessageObject, RedisConnector logger = bec_logger.logger diff --git a/csaxs_bec/devices/epics/devices/eiger9m_csaxs.py b/csaxs_bec/devices/epics/devices/eiger9m_csaxs.py index de31092..3a53adf 100644 --- a/csaxs_bec/devices/epics/devices/eiger9m_csaxs.py +++ b/csaxs_bec/devices/epics/devices/eiger9m_csaxs.py @@ -5,7 +5,7 @@ import time from typing import Any import numpy as np -from bec_lib import messages, threadlocked +from bec_lib import messages from bec_lib.endpoints import MessageEndpoints from bec_lib.logger import bec_logger from ophyd import ADComponent as ADCpt @@ -308,33 +308,35 @@ class Eiger9MSetup(CustomDetectorMixin): ) pipe.execute() - @threadlocked def finished(self): """Check if acquisition is finished.""" - signal_conditions = [ - ( - lambda: self.parent.cam.acquire.read()[self.parent.cam.acquire.name]["value"], - DetectorState.IDLE, - ), - (lambda: self.std_client.get_status()["acquisition"]["state"], "FINISHED"), - ( - lambda: self.std_client.get_status()["acquisition"]["stats"]["n_write_completed"], - int(self.parent.scaninfo.num_points * self.parent.scaninfo.frames_per_trigger), - ), - ] - if not self.wait_for_signals( - signal_conditions=signal_conditions, - timeout=self.parent.timeout, - check_stopped=True, - all_signals=True, - ): - raise EigerTimeoutError( - f"Reached timeout with detector state {signal_conditions[0][0]}, std_daq state" - f" {signal_conditions[1][0]} and received frames of {signal_conditions[2][0]} for" - " the file writer" - ) - self.stop_detector() - self.stop_detector_backend() + with self._lock: + signal_conditions = [ + ( + lambda: self.parent.cam.acquire.read()[self.parent.cam.acquire.name]["value"], + DetectorState.IDLE, + ), + (lambda: self.std_client.get_status()["acquisition"]["state"], "FINISHED"), + ( + lambda: self.std_client.get_status()["acquisition"]["stats"][ + "n_write_completed" + ], + int(self.parent.scaninfo.num_points * self.parent.scaninfo.frames_per_trigger), + ), + ] + if not self.wait_for_signals( + signal_conditions=signal_conditions, + timeout=self.parent.timeout, + check_stopped=True, + all_signals=True, + ): + raise EigerTimeoutError( + f"Reached timeout with detector state {signal_conditions[0][0]}, std_daq state" + f" {signal_conditions[1][0]} and received frames of {signal_conditions[2][0]} for" + " the file writer" + ) + self.stop_detector() + self.stop_detector_backend() class SLSDetectorCam(Device): diff --git a/csaxs_bec/file_writer/csaxs_nexus.py b/csaxs_bec/file_writer/csaxs_nexus.py index 3a393ff..f9db022 100644 --- a/csaxs_bec/file_writer/csaxs_nexus.py +++ b/csaxs_bec/file_writer/csaxs_nexus.py @@ -5,7 +5,7 @@ from typing import TYPE_CHECKING, Any import numpy as np if TYPE_CHECKING: - from bec_lib import DeviceManagerBase + from bec_lib.devicemanager import DeviceManagerBase from bec_server.file_writer.file_writer import HDF5Storage diff --git a/tests/tests_devices/test_eiger9m_csaxs.py b/tests/tests_devices/test_eiger9m_csaxs.py index 4a23155..50af077 100644 --- a/tests/tests_devices/test_eiger9m_csaxs.py +++ b/tests/tests_devices/test_eiger9m_csaxs.py @@ -4,7 +4,8 @@ from unittest import mock import ophyd import pytest -from bec_lib import MessageEndpoints, messages +from bec_lib import messages +from bec_lib.endpoints import MessageEndpoints from bec_server.device_server.tests.utils import DMMock from ophyd_devices.tests.utils import MockPV diff --git a/tests/tests_devices/test_falcon_csaxs.py b/tests/tests_devices/test_falcon_csaxs.py index d61a359..b07f75f 100644 --- a/tests/tests_devices/test_falcon_csaxs.py +++ b/tests/tests_devices/test_falcon_csaxs.py @@ -5,7 +5,8 @@ from unittest import mock import ophyd import pytest -from bec_lib import MessageEndpoints, messages +from bec_lib import messages +from bec_lib.endpoints import MessageEndpoints from bec_server.device_server.tests.utils import DMMock from ophyd_devices.tests.utils import MockPV diff --git a/tests/tests_devices/test_mcs_card.py b/tests/tests_devices/test_mcs_card.py index f2cb95b..e325416 100644 --- a/tests/tests_devices/test_mcs_card.py +++ b/tests/tests_devices/test_mcs_card.py @@ -4,7 +4,8 @@ from unittest import mock import ophyd import pytest -from bec_lib import MessageEndpoints, messages +from bec_lib import messages +from bec_lib.endpoints import MessageEndpoints from bec_server.device_server.tests.utils import DMMock from ophyd_devices.tests.utils import MockPV diff --git a/tests/tests_devices/test_pilatus_csaxs.py b/tests/tests_devices/test_pilatus_csaxs.py index 4ba0819..c8fa2bb 100644 --- a/tests/tests_devices/test_pilatus_csaxs.py +++ b/tests/tests_devices/test_pilatus_csaxs.py @@ -5,7 +5,8 @@ from unittest import mock import ophyd import pytest -from bec_lib import MessageEndpoints, messages +from bec_lib import messages +from bec_lib.endpoints import MessageEndpoints from bec_server.device_server.tests.utils import DMMock from ophyd_devices.tests.utils import MockPV