This commit is contained in:
ywb
2026-06-05 20:50:38 +08:00
parent 4126e01bba
commit 696bf2ef6e
3 changed files with 42 additions and 16 deletions
+28 -15
View File
@@ -738,22 +738,35 @@ class MissionExecutorV3:
return None
def _request_manual_qr(self) -> Optional[str]:
"""暂停任务,等待手动输入(不超时,必须输入才能继续;stop 时解除"""
self.status = MissionStatus.WAITING_QR
self.report["status"] = "waiting_qr"
self.report["step"] = "等待手动输入二维码"
self._log(" ⌨️ 弹窗等待手动输入二维码(不可跳过)...")
"""暂停任务,等待手动输入(支持重新扫描"""
while True:
self.status = MissionStatus.WAITING_QR
self.report["status"] = "waiting_qr"
self.report["step"] = "等待手动输入二维码"
self._log(" ⌨️ 弹窗等待手动输入二维码...")
self._qr_event.clear()
self._qr_event.wait() # 无限等待,直到 set_manual_qr 或 stop() 触发
self.status = MissionStatus.RUNNING
self.report["status"] = "running"
if self._qr_value:
self._log(f" ✏️ 手动输入: {self._qr_value}")
return self._qr_value
else:
self._log(f" ⚠️ 任务已停止")
return None
self._qr_event.clear()
self._qr_event.wait() # 无限等待,直到 set_manual_qr 或 stop() 触发
if self._qr_value == 'RESCAN':
self.status = MissionStatus.RUNNING
self.report["status"] = "running"
self._log(" 🔄 用户点击重新扫描,重试...")
qr = self._decode_qr_from_arm()
if qr:
self._log(f" ✅ 重新扫描成功: {qr}")
return qr
self._log(" ❌ 重新扫描仍未识别到二维码")
continue # 继续弹窗
self.status = MissionStatus.RUNNING
self.report["status"] = "running"
if self._qr_value:
self._log(f" ✏️ 手动输入: {self._qr_value}")
return self._qr_value
else:
self._log(f" ⚠️ 任务已停止")
return None
def set_manual_qr(self, value: str):
self._qr_value = value.strip()