diff --git a/src/genie_python/genie.py b/src/genie_python/genie.py index a779331..786c8a8 100644 --- a/src/genie_python/genie.py +++ b/src/genie_python/genie.py @@ -789,9 +789,9 @@ def connected_pvs_in_list(pv_list: list[str], is_local: bool = False) -> list[st def begin( period: int = 1, meas_id: str | None = None, - meas_type: str = "", - meas_subid: str = "", - sample_id: str = "", + meas_type: str | None = None, + meas_subid: str | None = None, + sample_id: str | None = None, delayed: bool = False, quiet: bool = False, paused: bool = False, diff --git a/src/genie_python/genie_epics_api.py b/src/genie_python/genie_epics_api.py index c7c64e8..ba35791 100644 --- a/src/genie_python/genie_epics_api.py +++ b/src/genie_python/genie_epics_api.py @@ -68,6 +68,8 @@ def __init__( self.motion_suffix = "CS:MOT:MOVING" self.pre_post_cmd_manager = PrePostCmdManager() self.logger = GenieLogger() + self._sample_par_names_cache = None + self._beamline_par_names_cache = None if environment_details is None: self._environment_details = EnvironmentDetails() @@ -624,7 +626,11 @@ def set_sample_par(self, name: str, value: "PVValue") -> None: name: the name of the parameter to change value: the new value """ - names = self.blockserver.get_sample_par_names() + try: + names = self.blockserver.get_sample_par_names() + self._sample_par_names_cache = names + except Exception: + names = self._sample_par_names_cache if names is not None: for n in names: m = re.match(".+:SAMPLE:%s" % name.upper(), n) @@ -648,7 +654,11 @@ def set_beamline_par(self, name: str, value: "PVValue") -> None: name: the name of the parameter to change value: the new value """ - names = self.blockserver.get_beamline_par_names() + try: + names = self.blockserver.get_beamline_par_names() + self._beamline_par_names_cache = names + except Exception: + names = self._beamline_par_names_cache if names is not None: for n in names: m = re.match(".+:BL:%s" % name.upper(), n)