diff --git a/src/calng/base_correction.py b/src/calng/base_correction.py index 2b072927a58f924b889f2c601a4d3c394da63d1e..3f3d46860d4212c96d607ae37c3733b59a1d2503 100644 --- a/src/calng/base_correction.py +++ b/src/calng/base_correction.py @@ -32,6 +32,8 @@ from karabo.bound import ( ) from karabo.common.api import KARABO_SCHEMA_DISPLAY_TYPE_SCENES as DT_SCENES from karabo.common.states import State +from karabo import version as karaboVersion +from pkg_resources import parse_version from . import scenes, shmem_utils, utils from ._version import version as deviceVersion @@ -460,31 +462,32 @@ class BaseCorrection(PythonDevice): ) self._last_processing_started = 0 # not input handler should put timestamp self._rate_update_timer = utils.RepeatingTimer( - interval=0.5, + interval=1, callback=self._update_rate_and_state, ) self._buffer_lock = threading.Lock() self.KARABO_SLOT(self.loadMostRecentConstants) self.KARABO_SLOT(self.requestScene) - # TODO: the CalCatFriend could add these for us - # note: overly complicated slot function creation necessary for closure to work - def make_wrapper_capturing_constant(constant): - def aux(): - self.calcat_friend.get_specific_constant_version_and_call_me_back( - constant, self._load_constant_to_gpu + if parse_version(karaboVersion) >= parse_version("2.11"): + # TODO: the CalCatFriend could add these for us + # note: overly complicated slot function creation necessary for closure to work + def make_wrapper_capturing_constant(constant): + def aux(): + self.calcat_friend.get_specific_constant_version_and_call_me_back( + constant, self._load_constant_to_gpu + ) + + return aux + + for constant in self._constant_enum_class: + slot_name = f"foundConstants.{constant.name}.overrideConstantVersion" + meth_name = slot_name.replace(".", "_") + self.KARABO_SLOT( + make_wrapper_capturing_constant(constant), + slotName=meth_name, ) - return aux - - for constant in self._constant_enum_class: - slot_name = f"foundConstants.{constant.name}.overrideConstantVersion" - meth_name = slot_name.replace(".", "_") - self.KARABO_SLOT( - make_wrapper_capturing_constant(constant), - slotName=meth_name, - ) - def preReconfigure(self, config): for ts_path in ( "constantParameters.deviceMappingSnapshotAt", diff --git a/src/calng/calcat_utils.py b/src/calng/calcat_utils.py index 3f5753fb2f3ebf6890f83ea31955ccfd58d11145..1f6fec910d205ca7d3722cea21250637819f6811 100644 --- a/src/calng/calcat_utils.py +++ b/src/calng/calcat_utils.py @@ -25,6 +25,8 @@ from karabo.bound import ( STRING_ELEMENT, UINT32_ELEMENT, ) +from karabo import version as karaboVersion +from pkg_resources import parse_version from . import utils @@ -91,11 +93,14 @@ def _add_status_schema_from_enum(schema, prefix, enum_class): .defaultValue("") .reconfigurable() .commit(), - SLOT_ELEMENT(schema) - .key(f"{constant_node}.overrideConstantVersion") - .displayedName("Override constant version") - .commit(), ) + if parse_version(karaboVersion) >= parse_version("2.11"): + ( + SLOT_ELEMENT(schema) + .key(f"{constant_node}.overrideConstantVersion") + .displayedName("Override constant version") + .commit(), + ) class DetectorStandin(typing.NamedTuple):