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._lens_type = None
|
||||||
self._focus_reported = False
|
self._focus_reported = False
|
||||||
self._af_hint_shown = False
|
self._af_hint_shown = False
|
||||||
|
self._denied_retries = 0
|
||||||
|
|
||||||
self._notice = None
|
self._notice = None
|
||||||
self.web_cmds = queue.Queue()
|
self.web_cmds = queue.Queue()
|
||||||
@@ -2145,6 +2146,14 @@ class App(tk.Tk):
|
|||||||
elif kind == "error":
|
elif kind == "error":
|
||||||
self.log(f"ERROR {ev['text']}")
|
self.log(f"ERROR {ev['text']}")
|
||||||
self.notify(ev["text"], "error", 10 if ev.get("popup") else 6)
|
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:
|
if not self.connected:
|
||||||
self.btn_connect.configure(state="normal")
|
self.btn_connect.configure(state="normal")
|
||||||
self.btn_scan.configure(state="normal")
|
self.btn_scan.configure(state="normal")
|
||||||
@@ -2203,6 +2212,7 @@ class App(tk.Tk):
|
|||||||
self.btn_pair.configure(state="normal")
|
self.btn_pair.configure(state="normal")
|
||||||
elif kind == "connected":
|
elif kind == "connected":
|
||||||
self.connected = True
|
self.connected = True
|
||||||
|
self._denied_retries = 0
|
||||||
self._connect_time = time.time()
|
self._connect_time = time.time()
|
||||||
self._payload_count = 0
|
self._payload_count = 0
|
||||||
self._payload_warned = False
|
self._payload_warned = False
|
||||||
|
|||||||
Referencia en una nueva incidencia
Block a user