diff --git a/docs/changes/newsfragments/ 8097.improved_driver b/docs/changes/newsfragments/ 8097.improved_driver new file mode 100644 index 00000000000..5d366fb8ae4 --- /dev/null +++ b/docs/changes/newsfragments/ 8097.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 4edafe7155c..8eeddbcb2d5 100644 --- a/src/qcodes/instrument_drivers/QuantumDesign/DynaCoolPPMS/DynaCool.py +++ b/src/qcodes/instrument_drivers/QuantumDesign/DynaCoolPPMS/DynaCool.py @@ -83,15 +83,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), @@ -433,7 +432,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: """