增加定时重加设备逻辑

This commit is contained in:
2025-10-30 20:11:14 +08:00
parent 141d7abe3e
commit bde168df15
7 changed files with 113 additions and 35 deletions

View File

@@ -116,6 +116,45 @@ class DeviceInfo:
self._iproxy_path = self._find_iproxy()
LogManager.info("DeviceInfo 初始化完成", udid="system")
print("[Init] DeviceInfo 初始化完成")
# 延迟执行删除设备方法
threading.Thread(target=self.readdDevice).start()
# 清空所有设备
def readdDevice(self):
print("开始自动删除设备")
second = 0
while True:
second += 1
if second == 3555:
with self._lock:
# 先拍一张快照,避免“边遍历边修改”
udids = list(self._models.keys())
for udid in udids:
print(f"[Remove] 正在移除设备 {udid}")
# 以 udid 为主键,逐个 pop
model = self._models.pop(udid, None)
proc = self._iproxy.pop(udid, None)
self._port_by_udid.pop(udid, None)
self._first_seen.pop(udid, None)
self._last_seen.pop(udid, None)
# 安全结束进程
self._kill(proc)
# 组一个“下线通知”的占位模型
if model is None:
model = DeviceModel(
deviceId=udid, screenPort=-1, width=0, height=0, scale=0.0, type=2
)
# 标记为“已移除/离线”
model.type = 2
model.ready = False
model.screenPort = -1
# 通知上层
self._manager_send(model)
print(f"[Remove] 已移除设备 {udid}")
second = 0
print(f"[Remove] 设备移除完成,总数: {len(udids)}")
time.sleep(1)
def listen(self):
LogManager.method_info("进入主循环", "listen", udid="system")