forked from M-Labs/thermostat
Init client_watcher once
This commit is contained in:
parent
659d0d0835
commit
27ce311111
@ -53,9 +53,14 @@ class ClientWatcher(QObject):
|
||||
def start_watching(self):
|
||||
self.watch_task = asyncio.create_task(self.run())
|
||||
|
||||
def is_watching(self):
|
||||
return self.watch_task is not None
|
||||
|
||||
@pyqtSlot()
|
||||
def stop_watching(self):
|
||||
self.watch_task.cancel()
|
||||
if self.watch_task is not None:
|
||||
self.watch_task.cancel()
|
||||
self.watch_task = None
|
||||
|
||||
@pyqtSlot(float)
|
||||
def set_update_s(self, update_s):
|
||||
@ -75,7 +80,11 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
|
||||
self.fan_pwm_recommended = False
|
||||
|
||||
self.tec_client = Client()
|
||||
self.client_watcher: ClientWatcher = None
|
||||
self.client_watcher = ClientWatcher(self, self.tec_client, self.report_refresh_spin.value())
|
||||
self.client_watcher.fan_update.connect(self.fan_update)
|
||||
self.report_apply_btn.clicked.connect(
|
||||
lambda: self.client_watcher.set_update_s(self.report_refresh_spin.value())
|
||||
)
|
||||
|
||||
if args.connect:
|
||||
if args.IP:
|
||||
@ -147,7 +156,7 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
|
||||
|
||||
@asyncClose
|
||||
async def closeEvent(self, event):
|
||||
if self.client_watcher is not None:
|
||||
if self.client_watcher.is_watching():
|
||||
self.client_watcher.stop_watching()
|
||||
if self.tec_client.is_connecting() or self.tec_client.is_connected():
|
||||
await self.tec_client.disconnect()
|
||||
@ -171,16 +180,9 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
|
||||
self._status(await self.tec_client.hw_rev())
|
||||
self.fan_update(await self.tec_client.fan())
|
||||
|
||||
self.client_watcher = ClientWatcher(self, self.tec_client, self.report_refresh_spin.value())
|
||||
self.client_watcher.fan_update.connect(self.fan_update)
|
||||
self.report_apply_btn.clicked.connect(
|
||||
lambda: self.client_watcher.set_update_s(self.report_refresh_spin.value())
|
||||
)
|
||||
self.client_watcher.start_watching()
|
||||
else:
|
||||
if self.client_watcher is not None:
|
||||
self.client_watcher.stop_watching()
|
||||
self.client_watcher = None
|
||||
self.client_watcher.stop_watching()
|
||||
|
||||
await self.tec_client.disconnect()
|
||||
self._on_connection_changed(False)
|
||||
|
Loading…
Reference in New Issue
Block a user