mirror of
https://github.com/TheFunny/ArisuAutoSweeper
synced 2026-10-24 13:12:05 +00:00
fix: connect all possible serial at once
This commit is contained in:
@@ -691,13 +691,9 @@ class Connection(ConnectionAttr):
|
|||||||
# Brute force connect nearby ports to handle serial switches
|
# Brute force connect nearby ports to handle serial switches
|
||||||
if self.is_mumu12_family:
|
if self.is_mumu12_family:
|
||||||
before = self.serial
|
before = self.serial
|
||||||
for port_offset in [1, -1, 2, -2]:
|
serial_list = [self.serial.replace(str(self.port), str(self.port + offset))
|
||||||
port = self.port + port_offset
|
for offset in [1, -1, 2, -2]]
|
||||||
serial = self.serial.replace(str(self.port), str(port))
|
self.adb_brute_force_connect(serial_list)
|
||||||
msg = self.adb_client.connect(serial)
|
|
||||||
logger.info(msg)
|
|
||||||
if 'connected' in msg:
|
|
||||||
break
|
|
||||||
self.detect_device()
|
self.detect_device()
|
||||||
if self.serial != before:
|
if self.serial != before:
|
||||||
return True
|
return True
|
||||||
@@ -710,6 +706,25 @@ class Connection(ConnectionAttr):
|
|||||||
self.detect_device()
|
self.detect_device()
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def adb_brute_force_connect(self, serial_list):
|
||||||
|
"""
|
||||||
|
Args:
|
||||||
|
serial_list (list[str]):
|
||||||
|
"""
|
||||||
|
import asyncio
|
||||||
|
ev = asyncio.new_event_loop()
|
||||||
|
|
||||||
|
def _connect(serial):
|
||||||
|
msg = self.adb_client.connect(serial)
|
||||||
|
logger.info(msg)
|
||||||
|
return msg
|
||||||
|
|
||||||
|
async def connect():
|
||||||
|
tasks = [ev.run_in_executor(None, _connect, serial) for serial in serial_list]
|
||||||
|
await asyncio.gather(*tasks)
|
||||||
|
|
||||||
|
ev.run_until_complete(connect())
|
||||||
|
|
||||||
@Config.when(DEVICE_OVER_HTTP=True)
|
@Config.when(DEVICE_OVER_HTTP=True)
|
||||||
def adb_connect(self):
|
def adb_connect(self):
|
||||||
# No adb connect if over http
|
# No adb connect if over http
|
||||||
|
|||||||
Reference in New Issue
Block a user