Aktionen
Feature #23
geschlossen
JH
Live-Status-Anzeige für BLE-Pulsmesser + robustere BLE-Verbindung (Trainingsstart & Geräteübersicht)
Feature #23:
Live-Status-Anzeige für BLE-Pulsmesser + robustere BLE-Verbindung (Trainingsstart & Geräteübersicht)
Beginn:
Abgabedatum:
% erledigt:
100%
Geschätzter Aufwand:
Gefunden in Version:
ErControl 3.0.3
Beschreibung
Anlass: eine Garmin Instinct 2X Solar, deren BLE-Pulsübertragung sich launisch verhält (schläft nach Leerlauf ein, blockiert sich mit ANT+ gegenseitig). Debugging führte zu zwei zusammengehörigen Verbesserungen an derselben BLE-Pulsmesser-Verbindungskette.
Robustere Verbindung (Trainingsstart und Geräteübersicht)¶
BlePulsmesser.EstablishConnectionAsyncwurde bisher nur einmal versucht - jetztEstablishConnectionWithRetryAsync(1s-Abstand bis Erfolg/Abbruch), genutzt vom Trainingsstart UND dem neuen Live-Monitor.BleScanner.ConnectAsyncgibt das BluetoothLEDevice nach jedem Versuch mit erzwungenem GC frei statt die Central-Verbindung offen zu lassen (bekannte Windows-BLE-Eigenheit).GetCharacteristicAsync(Pulsmesser + Ergometer) fragt die Characteristic jetzt bis zu 3x ab, bevor sie als "nicht vorhanden" gilt - eine frisch verbundene Session kann die allererste GATT-Abfrage sonst leer beantworten, obwohl die Characteristic existiert (beobachtet: 7+ Minuten Retries ohne einen Erfolg).BlePulsmesser.IsAlive(maxAge): eine Verbindung gilt erst als "lebend", wenn innerhalb von maxAge ein reales Puls-Paket ankam, nicht schon bei bloßem GATT-Connect-Erfolg.
Live-Status-Anzeige in der Geräteübersicht (Pulsmesser-Tab)¶
- Pro BLE-Pulsmesser-Zeile ein Status-Punkt: rot ohne Verbindung/aktuellen Puls, grün mit dem live empfangenen Puls (bpm) - kein Training/Testen-Klick mehr nötig, um zu sehen, ob der Pulsmesser überhaupt sendet.
- Läuft automatisch im Hintergrund, sobald die Geräteübersicht offen ist; wird bei Speichern/Löschen sofort nachgezogen (neue oder umgestellte Zeilen bekommen sofort einen Monitor).
Dateien
Aktionen

