Projekt

Allgemein

Profil

Aktionen

Fehler #133

geschlossen
JH

BLE-Pulsmesser (Instinct 2X Solar) muss häufiger neu gekoppelt werden

Fehler #133: BLE-Pulsmesser (Instinct 2X Solar) muss häufiger neu gekoppelt werden

Von Julius Haman vor 8 Tagen hinzugefügt. Vor 8 Tagen aktualisiert.

Status:
Erledigt
Priorität:
Normal
Zugewiesen an:
-
Zielversion:
Beginn:
Abgabedatum:
% erledigt:

0%

Geschätzter Aufwand:
Gefunden in Version:

Beschreibung

Problem

Der BLE-Pulsmesser (Garmin Instinct 2X Solar, Herzfrequenz-Broadcast) muss in ErControl häufiger neu gekoppelt (neu ausgewählt) werden, obwohl die gespeicherte Geräteadresse unverändert bleibt (FAD7BDDCB983, statische Zufallsadresse).

Ursache (bestätigt)

Windows liefert für ein Gerät mit Zufallsadresse nur dann eine Verbindung, wenn es das Gerät kürzlich in einem Advertisement gesehen hat. Nach einem Neustart der Uhr (bzw. wenn Windows den Eintrag nicht mehr im Zwischenspeicher hat) lieferte BluetoothLEDevice.FromBluetoothAddressAsync(address) dauerhaft sofort null (3 bis 15 ms), obwohl die Uhr sendete. ErControl suchte nie selbst, daher half nur das Neukoppeln, dessen Scan das Gerät Windows wieder bekannt machte.

Nicht die Ursache: Die Adresse wechselt nicht (bleibt auch bei Neukopplung gleich). Eine Windows-Kopplung existiert für die Uhr nicht, die Verbindung läuft rein per BLE/GATT.

Davon zu unterscheiden: Ist die Uhr zwar bekannt, aber noch nicht verbindbar (Broadcast noch nicht aktiv oder belegt), meldet GATT Unreachable (ca. 7,7 s, 0 Services). Das behebt sich nach dem Start des Broadcasts durch die vorhandene Wiederholung von selbst.

Umsetzung

  • Diagnose-Logging im Verbindungsaufbau von BlePulsmesser (Adresstyp, Dauer, ConnectionStatus, GATT-Status, ProtocolError je Schritt).
  • Fix: Vor FromBluetoothAddressAsync wartet BlePulsmesser bis zu 5 s auf ein Advertisement der Adresse (BluetoothLEAdvertisementWatcher) und übergibt dessen Adresstyp (Random/Public). Kommt keins, wird trotzdem verbunden.
  • Einheitliche Log-Meldungen: BLE-Pulsmesser {Adresse}: <Aussage> (<Details>, <Dauer> ms).

Verifiziert (05.10.2026)

  • Ohne Fix, nach Neustart der Uhr: FromBluetoothAddressAsync liefert dauerhaft null.
  • Mit Fix: "Advertisement gesehen, Typ Random" (2,5 s), danach "Verbunden, Notifications abonniert" (8,7 s) ohne Neukoppeln.
  • Ein vorangegangener Lauf mit dem Fix macht die Uhr Windows bekannt, sodass auch die Version ohne Fix danach wieder verbindet (Zwischenspeicher).

Hinweise

  • Die Uhr nimmt nur einen Empfänger gleichzeitig an (Garmin-Verhalten); ein zweiter Empfänger (anderer Rechner, App) macht sie unerreichbar.
  • Wenn ein Advertisement "nicht gesehen" wird, sendet die Uhr nicht (Broadcast aktiv?) oder der PC empfängt sie nicht.
Aktionen

Auch abrufbar als: PDF Atom