fix(satellite): Scan-Auftrag waehrend laufendem Scan wartet bis zum Ende
Kam sat_discover, waehrend schon ein Scan lief (z.B. der erste nach dem Start, ~25 s), wartete der Satellit nur 6 s und lieferte die bisherige Liste — nach einem Neustart leer → "Keine Geraete gefunden". Jetzt wartet er, bis der laufende Scan fertig ist (hoechstens SCAN_MAX_SEC). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1819,11 +1819,12 @@ class Satellite:
|
||||
if self._devices and fresh and not force:
|
||||
return self._devices
|
||||
if self._scanning:
|
||||
# Laufenden Scan abwarten (grob)
|
||||
for _ in range(30):
|
||||
# Laufenden Scan abwarten — bis er fertig ist (hoechstens SCAN_MAX_SEC).
|
||||
# Frueher nur 6 s: direkt nach dem Start (Scan ~25 s, Liste noch
|
||||
# leer) kam so "keine Geraete gefunden" zurueck.
|
||||
deadline = time.time() + SCAN_MAX_SEC + 5
|
||||
while self._scanning and time.time() < deadline:
|
||||
await asyncio.sleep(0.2)
|
||||
if not self._scanning:
|
||||
break
|
||||
return self._devices
|
||||
self._scanning = True
|
||||
self._scan_stage = "start"
|
||||
|
||||
Reference in New Issue
Block a user