Projekt

Allgemein

Profil

Aktionen

Fehler #134

geschlossen
JH

BLE-Ergometer: Advertisement-Scan vor dem Verbinden (wie beim Pulsmesser, #133)

Fehler #134: BLE-Ergometer: Advertisement-Scan vor dem Verbinden (wie beim Pulsmesser, #133)

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

Hinweis zum Test

Dieser Punkt kann nicht getestet werden: Es steht kein BLE-Ergometer/-Trainer zur Verfügung. Die Änderung wird ausschließlich auf Grund der Erfahrungen mit BLE-Pulsmessern (#133) umgesetzt und ist für Ergometer nicht auf echter Hardware verifiziert. Ob und bei welchen Trainern das Problem tatsächlich auftritt, ist unbekannt.

Hintergrund

In #133 wurde festgestellt: Windows liefert für ein BLE-Gerät mit Zufallsadresse nur dann eine Verbindung, wenn es das Gerät kürzlich in einem Advertisement gesehen hat. Sonst liefert BluetoothLEDevice.FromBluetoothAddressAsync(address) dauerhaft sofort null (beim Pulsmesser nach dem Neustart der Uhr beobachtet). Der Pulsmesser wurde in #133 mit einem kurzen Advertisement-Scan vor dem Verbinden korrigiert (BlePulsmesser.WaitForAdvertisementAsync).

Betroffene Stellen (nicht geändert)

Dasselbe Muster (Aufruf ohne Scan und ohne BluetoothAddressType) steht in:

  • BleFtmsErgometer.EstablishConnectionAsync (Verbindung beim Trainingsstart und automatischer Reconnect während des Trainings über ErgometerReconnector)
  • BleScanner.ConnectAsync (Geräteprüfung beim Auswählen, Geräte-Dialog)

Trainer mit öffentlicher Adresse oder Kopplung in Windows sind vermutlich nicht betroffen. Bei Zufallsadressen ist es möglich.

Vorschlag

  • WaitForAdvertisementAsync aus BlePulsmesser in eine gemeinsame Hilfsklasse in Services/Ble auslagern und in BlePulsmesser, BleFtmsErgometer und BleScanner.ConnectAsync verwenden.
  • Log-Meldungen im gleichen Muster wie beim Pulsmesser: BLE-Ergometer {Adresse}: <Aussage> (<Details>, <Dauer> ms).
  • Nebenwirkung: Sendet das Gerät nicht, wartet jeder Versuch bis zu 5 s auf ein Advertisement, bevor trotzdem verbunden wird (bei Wiederholung alle 1 s ca. 6 s pro Runde).

Verifikation

Nur über die vorhandenen Tests und den Pulsmesser-Pfad möglich. Für Ergometer: Rückmeldung von Nutzern mit BLE-Trainern abwarten.

Aktionen

Auch abrufbar als: PDF Atom