-
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user