Stop polling drift

Just waiting for the update_s doesn't take into account the time to
execute update_params, and causes time drift.
This commit is contained in:
atse 2023-08-08 17:16:11 +08:00
parent 7868d58569
commit dd807cfddc

View File

@ -49,9 +49,11 @@ class ClientWatcher(QObject):
super().__init__(parent) super().__init__(parent)
async def run(self): async def run(self):
loop = asyncio.get_running_loop()
while self.running: while self.running:
time = loop.time()
await self.update_params() await self.update_params()
await asyncio.sleep(self.update_s) await asyncio.sleep(self.update_s - (loop.time() - time))
async def update_params(self): async def update_params(self):
self.fan_update.emit(await tec_client.fan()) self.fan_update.emit(await tec_client.fan())