Feature #147
Von Julius Haman vor 22 Tagen aktualisiert
Anlass: h3. Ausgangslage Die Live-Statusanzeige für BLE-Pulsmesser in der Geräteübersicht wurde mit #139 entfernt, weil die dauerhafte Verbindung der Übersicht den Verbindungsaufbau im Training verzögerte (ein Pulsmesser nimmt nur eine Central-Verbindung an). Seitdem gibt es dort keinen Hinweis mehr, ob ein Gerät erreichbar ist. Außerdem dauert der BLE-Verbindungsaufbau gegenüber ANT+ spürbar länger (im Log typisch 6-10 s). ### Umfang 1. **Anwesenheitsanzeige:** h3. Umsetzung # *Anwesenheitsanzeige:* Pro BLE-Pulsmesser ein Punkt in der Liste. Grün = Advertising in den letzten 8 s gesehen, grau = nicht gesehen. Rein passiver Advertisement-Watcher, keine Verbindung, kein Puls. Der Watcher läuft nur, solange die Geräteansicht geladen ist, und pausiert während eines Freien Trainings, BLE-Tests und der Gerätesuche. Nur BLE, kein ANT+. 2. **Schnellerer Verbindungsaufbau:** `BleAddressResolver` # *Schnellerer Verbindungsaufbau:* @BleAddressResolver@ öffnet das Gerät zuerst sofort mit dem aus der Adresse abgeleiteten Adresstyp. Nur wenn Windows das Gerät nicht kennt, wird wie bisher bis zu 5 s auf ein Advertisement gewartet. Vorher wurde diese Wartezeit unabhängig vom eigentlichen Connect bezahlt (0,1-5 s, bei "nicht gesehen" der volle Timeout). 3. **Diagnose:** # *Diagnose:* Die "Verbunden"-Zeile im Log enthält Teilzeiten (Gerät geöffnet, Service, Characteristic). ### h3. Messung (Garmin Instinct 2X Solar, Log 10.10.2026) * Wartezeit vor dem Connect: vorher Ø 2,6 s (bis 5 s), nachher 50-75 ms. * Gesamtdauer: vorher Ø 6,6 s, nachher 0,9-4,9 s bei bestehender Verbindung, 2,9-7,8 s bei Kaltstart. * Uhr sendet keinen Puls: Fehlschlag nach 7,9 s (`Unreachable`, (@Unreachable@, Windows-GATT-Timeout), ohne dass eine Verbindung zurückbleibt. ### h3. Offen / bewusst nicht umgesetzt * `BluetoothCacheMode.Cached` @BluetoothCacheMode.Cached@ für Service-/Characteristic-Discovery: Gewinn nur bei bestehender Verbindung erwartet, Risiko veralteter Windows-Caches (#133). * Eigenes kürzeres Timeout für nicht antwortende Geräte (aktuell Windows-Timeout, ca. 8 s). * Anwesenheitsanzeige für ANT+.