mirror of
https://gitee.com/sui-feng-cb/AzurLaneAutoScript1
synced 2026-03-12 08:38:20 +08:00
Fix: Handle errors of error handling in device connection
This commit is contained in:
@@ -20,29 +20,41 @@ def retry(func):
|
||||
Args:
|
||||
self (AScreenCap):
|
||||
"""
|
||||
init = None
|
||||
for _ in range(RETRY_TRIES):
|
||||
try:
|
||||
if callable(init):
|
||||
self.sleep(RETRY_DELAY)
|
||||
init()
|
||||
return func(self, *args, **kwargs)
|
||||
# Can't handle
|
||||
except RequestHumanTakeover:
|
||||
# Can't handle
|
||||
break
|
||||
# When adb server was killed
|
||||
except ConnectionResetError as e:
|
||||
# When adb server was killed
|
||||
logger.error(e)
|
||||
self.adb_connect(self.serial)
|
||||
|
||||
def init():
|
||||
self.adb_connect(self.serial)
|
||||
# When ascreencap is not installed
|
||||
except AscreencapError as e:
|
||||
# When ascreencap not installed
|
||||
logger.error(e)
|
||||
self.ascreencap_init()
|
||||
|
||||
def init():
|
||||
self.ascreencap_init()
|
||||
# AdbError
|
||||
except AdbError as e:
|
||||
if not handle_adb_error(e):
|
||||
if handle_adb_error(e):
|
||||
def init():
|
||||
self.adb_connect(self.serial)
|
||||
else:
|
||||
break
|
||||
# Unknown, probably a trucked image
|
||||
except Exception as e:
|
||||
# Unknown
|
||||
# Probably trucked image
|
||||
logger.exception(e)
|
||||
|
||||
self.sleep(RETRY_DELAY)
|
||||
def init():
|
||||
pass
|
||||
|
||||
logger.critical(f'Retry {func.__name__}() failed')
|
||||
raise RequestHumanTakeover
|
||||
|
||||
Reference in New Issue
Block a user