From 52e008c96485509248c9edb87d432c6a8b5b4d02 Mon Sep 17 00:00:00 2001 From: SherwanMicrosoft Date: Tue, 5 May 2026 13:28:43 +0200 Subject: [PATCH 1/2] Fix DynaCool driver init and temperature_setpoint cache update - block_while_ramping_temperature: use set_cmd=None/get_cmd=None so the parameter is settable instead of read-only (set_cmd=False rejected the supplied initial_value). - blocking_t_state_check_interval: drop duplicate instrument=self kwarg; add_parameter already provides it. - _set_temperature_and_state: update cache on self.temperature_setpoint, not the non-existent self.setpoint. --- .../newsfragments/+dynacool-fixes.improved_driver | 14 ++++++++++++++ .../QuantumDesign/DynaCoolPPMS/DynaCool.py | 7 +++---- 2 files changed, 17 insertions(+), 4 deletions(-) create mode 100644 docs/changes/newsfragments/+dynacool-fixes.improved_driver diff --git a/docs/changes/newsfragments/+dynacool-fixes.improved_driver b/docs/changes/newsfragments/+dynacool-fixes.improved_driver new file mode 100644 index 00000000000..5d366fb8ae4 --- /dev/null +++ b/docs/changes/newsfragments/+dynacool-fixes.improved_driver @@ -0,0 +1,14 @@ +Fixed three bugs in :class:`qcodes.instrument_drivers.QuantumDesign.DynaCoolPPMS.DynaCool.DynaCool` +that prevented the driver from instantiating and from updating the +``temperature_setpoint`` cache: + +- ``block_while_ramping_temperature`` is now created with ``set_cmd=None`` / + ``get_cmd=None`` so it behaves as a settable cache-only parameter, instead of + ``set_cmd=False`` / ``get_cmd=False`` which made it read-only and rejected + the supplied ``initial_value``. +- Removed the duplicate ``instrument=self`` argument from the + ``blocking_t_state_check_interval`` parameter creation, which is supplied + automatically by ``add_parameter`` and was raising on construction. +- Fixed an ``AttributeError`` when setting the temperature: the cache update + in ``_set_temperature_and_state`` now correctly references + ``self.temperature_setpoint`` rather than the non-existent ``self.setpoint``. diff --git a/src/qcodes/instrument_drivers/QuantumDesign/DynaCoolPPMS/DynaCool.py b/src/qcodes/instrument_drivers/QuantumDesign/DynaCoolPPMS/DynaCool.py index 080ba979864..46aea9f84a8 100644 --- a/src/qcodes/instrument_drivers/QuantumDesign/DynaCoolPPMS/DynaCool.py +++ b/src/qcodes/instrument_drivers/QuantumDesign/DynaCoolPPMS/DynaCool.py @@ -84,15 +84,14 @@ def __init__( label="Block instrument while ramping temperature", initial_value=False, vals=vals.Bool(), - get_cmd=False, - set_cmd=False, + get_cmd=None, + set_cmd=None, ) """Parameter block_while_ramping_temperature, when set to True, will block further interaction while temperature is ramping to setpoint.""" self.blocking_t_state_check_interval: Parameter = self.add_parameter( name="blocking_t_state_check_interval", - instrument=self, initial_value=0.5, unit="s", vals=vals.Numbers(0, 60), @@ -434,7 +433,7 @@ def _temp_setter( while self.temperature_state() != "stable": sleep(self.blocking_t_state_check_interval()) - self.setpoint.cache._set_from_raw_value(values[0]) + self.temperature_setpoint.cache._set_from_raw_value(values[0]) def write(self, cmd: str) -> None: """ From 65a8d782ca490fad7c83626d2c6748329e147634 Mon Sep 17 00:00:00 2001 From: SherwanMicrosoft Date: Wed, 6 May 2026 13:07:39 +0200 Subject: [PATCH 2/2] Rename +dynacool-fixes.improved_driver to 8097.improved_driver --- .../{+dynacool-fixes.improved_driver => 8097.improved_driver} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/changes/newsfragments/{+dynacool-fixes.improved_driver => 8097.improved_driver} (100%) diff --git a/docs/changes/newsfragments/+dynacool-fixes.improved_driver b/docs/changes/newsfragments/ 8097.improved_driver similarity index 100% rename from docs/changes/newsfragments/+dynacool-fixes.improved_driver rename to docs/changes/newsfragments/ 8097.improved_driver