Retry READ_EXTENDED_ID command as it appears to fail frequently on the first request

This commit is contained in:
Andrew Kay
2019-06-19 21:17:31 -05:00
parent 3455c396b8
commit a6a79ea0f2

View File

@@ -110,12 +110,21 @@ class Controller:
except ProtocolError as error:
self.logger.warning(f'READ_TERMINAL_ID protocol error: {error}', exc_info=error)
try:
extended_id = read_extended_id(self.interface)
except ReceiveError as error:
self.logger.warning(f'READ_EXTENDED_ID receive error: {error}', exc_info=error)
except ProtocolError as error:
self.logger.warning(f'READ_EXTENDED_ID protocol error: {error}', exc_info=error)
# Retry the READ_EXTENDED_ID command as it appears to fail frequently on the
# first request - unlike the READ_TERMINAL_ID command,
extended_id = None
for attempt in range(3):
try:
extended_id = read_extended_id(self.interface)
break
except ReceiveError as error:
self.logger.warning(f'READ_EXTENDED_ID receive error: {error}', exc_info=error)
except ProtocolError as error:
self.logger.warning(f'READ_EXTENDED_ID protocol error: {error}', exc_info=error)
time.sleep(0.25)
return (terminal_id, extended_id.hex() if extended_id is not None else None)