Reintenta solo la conexión cuando Windows aún retiene el enlace de una copia cerrada
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Este commit está contenido en:
10
app.py
10
app.py
@@ -438,6 +438,7 @@ class App(tk.Tk):
|
||||
self._lens_type = None
|
||||
self._focus_reported = False
|
||||
self._af_hint_shown = False
|
||||
self._denied_retries = 0
|
||||
|
||||
self._notice = None
|
||||
self.web_cmds = queue.Queue()
|
||||
@@ -2145,6 +2146,14 @@ class App(tk.Tk):
|
||||
elif kind == "error":
|
||||
self.log(f"ERROR {ev['text']}")
|
||||
self.notify(ev["text"], "error", 10 if ev.get("popup") else 6)
|
||||
# Al abrir justo después de cerrar otra copia, Windows aún retiene el enlace unos segundos
|
||||
# y la cámara responde «acceso denegado»: reintentamos solos dos veces antes de rendirnos.
|
||||
if (not self.connected and "Acceso denegado" in ev["text"] and self._denied_retries < 2
|
||||
and ev["text"].startswith("Conexión")):
|
||||
self._denied_retries += 1
|
||||
self.status_var.set(f"Enlace ocupado: reintento {self._denied_retries} de 2 en 10 s...")
|
||||
self.after(10000, self.toggle_connect)
|
||||
return
|
||||
if not self.connected:
|
||||
self.btn_connect.configure(state="normal")
|
||||
self.btn_scan.configure(state="normal")
|
||||
@@ -2203,6 +2212,7 @@ class App(tk.Tk):
|
||||
self.btn_pair.configure(state="normal")
|
||||
elif kind == "connected":
|
||||
self.connected = True
|
||||
self._denied_retries = 0
|
||||
self._connect_time = time.time()
|
||||
self._payload_count = 0
|
||||
self._payload_warned = False
|
||||
|
||||
Referencia en una nueva incidencia
Block a user