From 7f06fc06fd3d0d1c347c129cd83631c99829f25e Mon Sep 17 00:00:00 2001 From: linuswck Date: Wed, 20 Mar 2024 15:24:56 +0800 Subject: [PATCH] async driver: fix incorrect timeout handling --- pykirdy/driver/kirdy_async.py | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/pykirdy/driver/kirdy_async.py b/pykirdy/driver/kirdy_async.py index 4c702d5..11c50f4 100644 --- a/pykirdy/driver/kirdy_async.py +++ b/pykirdy/driver/kirdy_async.py @@ -625,7 +625,7 @@ class Kirdy: async def _read_response(self): try: response = await asyncio.wait_for(self._reader.read(1024), self.timeout) - except TimeoutError: + except asyncio.exceptions.TimeoutError: return { "msg_type": "Internal Timeout" } @@ -645,12 +645,10 @@ class Kirdy: self._writer.write(bytes(json.dumps(cmd), "UTF-8")) await self._writer.drain() response = await self._read_response() - try: - if response["msg_type"] == "Acknowledge": - return response - except: - retry += 1 - await asyncio.sleep(0.25) + if response["msg_type"] == "Acknowledge": + return response + retry += 1 + await asyncio.sleep(0.1) raise NoAckRecv async def _send_cmd_handler(self, target, cmd, data=None): @@ -681,12 +679,10 @@ class Kirdy: self._writer.write(bytes(json.dumps(cmd_dict), "UTF-8")) await self._writer.drain() response = await self._read_response() - try: - if response["msg_type"] == "Acknowledge": - return response - except: - retry += 1 - await asyncio.sleep(0.1) + if response["msg_type"] == "Acknowledge": + return response + retry += 1 + await asyncio.sleep(0.1) raise NoAckRecv async def report_mode(self):