send_command: Code cleanup

* alias `data` as `new_value` once change is known to be the value

* Remove unneccessary redirection: The child at inner_param's childpath
to the root parameter... is just inner_param.

* Use `in` syntax for checking key existance in `dict`
This commit is contained in:
atse 2024-07-17 17:05:07 +08:00
parent 4690e12432
commit d70ba8aaa0

View File

@ -266,29 +266,32 @@ class MainWindow(QtWidgets.QMainWindow):
for inner_param, change, data in changes: for inner_param, change, data in changes:
if change == "value": if change == "value":
if inner_param.opts.get("param", None) is not None: new_value = data
if "thermostat:set_param" in inner_param.opts:
thermostat_param = inner_param.opts["thermostat:set_param"]
if inner_param.opts.get("title", None).endswith(" (mA)"): if inner_param.opts.get("title", None).endswith(" (mA)"):
data /= 1000 # Given in mA new_value /= 1000 # Given in mA
thermostat_param = inner_param.opts["param"] thermostat_param = inner_param.opts["param"]
if thermostat_param[1] == "ch": if thermostat_param[1] == "ch":
thermostat_param[1] = ch thermostat_param[1] = ch
if inner_param.name() == "rate" and data is None: if inner_param.name() == "rate" and new_value is None:
set_param_args = (*thermostat_param[:2], "off") set_param_args = (*thermostat_param[:2], "off")
else: else:
set_param_args = (*thermostat_param, data) set_param_args = (*thermostat_param, new_value)
param.child(*param.childPath(inner_param)).setOpts(lock=True) inner_param.setOpts(lock=True)
await self.client.set_param(*set_param_args) await self.client.set_param(*set_param_args)
param.child(*param.childPath(inner_param)).setOpts(lock=False) inner_param.setOpts(lock=False)
if inner_param.opts.get("pid_autotune", None) is not None: if "pid_autotune" in inner_param.opts:
autotuner_param = inner_param.opts["pid_autotune"][0] autotuner_param = inner_param.opts["pid_autotune"][0]
if inner_param.opts["pid_autotune"][1] != "ch": if inner_param.opts["pid_autotune"][1] != "ch":
ch = inner_param.opts["pid_autotune"][1] ch = inner_param.opts["pid_autotune"][1]
self.autotuners.set_params(autotuner_param, ch, data) self.autotuners.set_params(autotuner_param, ch, data)
if inner_param.opts.get("activaters", None) is not None: if "activaters" in inner_param.opts:
activater = inner_param.opts["activaters"][ activater = inner_param.opts["activaters"][
inner_param.reverse[0].index(data) # ListParameter.reverse = list of codename values inner_param.reverse[0].index(data) # ListParameter.reverse = list of codename values
] ]