From 7e89bf5337b79b511229e7e8b4d375fff8a3ea05 Mon Sep 17 00:00:00 2001 From: atse Date: Fri, 4 Aug 2023 12:32:08 +0800 Subject: [PATCH] Better send_command --- pytec/tec_qt.py | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/pytec/tec_qt.py b/pytec/tec_qt.py index 961691f..24fc195 100644 --- a/pytec/tec_qt.py +++ b/pytec/tec_qt.py @@ -599,19 +599,22 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow): @asyncSlot(object, object) async def send_command(self, param, changes): - for param, change, data in changes: - if param.name() == 'Temperature PID' and not data: - ch = param.opts["payload"] - await self.client.set_param('pwm', ch, 'i_set', params[ch].child('Constant Current').value()) - line = getattr(self, f'ch{ch}_t_line') - line.setVisible(False) - elif param.opts.get("commands", None) is not None: - match param.name(): + for inner_param, change, data in changes: + if inner_param.opts.get("commands", None) is not None: + match inner_param.name(): case 'Temperature PID': - getattr(self, f'ch{param.opts["payload"]}_t_line').setVisible(True) + pid_enabled = data + ch = inner_param.opts['payload'] + getattr(self, f'ch{ch}_t_line').setVisible(pid_enabled) + if pid_enabled: + getattr(self, f'ch{ch}_t_line').setValue(inner_param.child('Set Temperature').value()) + else: + await self.client.set_param('pwm', ch, 'i_set', param.child('Constant Current').value()) + return case 'Set Temperature': - getattr(self, f'ch{param.opts["payload"]}_t_line').setValue(data) - await asyncio.gather(*[self.client._command(x.format(value=data)) for x in param.opts["commands"]]) + ch = inner_param.opts['payload'] + getattr(self, f'ch{ch}_t_line').setValue(data) + await asyncio.gather(*[self.client._command(x.format(value=data)) for x in inner_param.opts["commands"]]) def _set_param_tree(self): for i, tree in enumerate((self.ch0_tree, self.ch1_tree)):