Aktionen
Fehler #131
geschlossen
JH
Trainingsuhr springt ab und zu um 2 Sekunden: Anzeige-Uhr vom Poll-Takt entkoppeln
Fehler #131:
Trainingsuhr springt ab und zu um 2 Sekunden: Anzeige-Uhr vom Poll-Takt entkoppeln
Beginn:
Abgabedatum:
% erledigt:
0%
Geschätzter Aufwand:
Gefunden in Version:
Beschreibung
Die angezeigte Trainingsuhr springt ab und zu um zwei Sekunden bzw. zeigt eine Sekunde doppelt. Nachgang zu #127 (Poll-Timer auf festem 1-s-Raster).
Befund (Test mit echter Fahrt, Training mit 63 Punkten)¶
- Der Poll-Takt ist jetzt sehr genau: mittlerer Abstand 1,001 s, Standardabweichung 0,025 s.
- Trotzdem gab es bei 62 Abständen 5 Sprünge um 2 s und 5 doppelt gezeigte Sekunden (z.B. 12,996 s zeigt 12, der nächste Tick bei 14,001 s zeigt 14).
- Ursache: Die Trainingszeit beginnt beim ersten Tick bei 0 und der Takt beträgt genau 1 s. Die Ticks liegen dadurch dauerhaft direkt an den Sekundengrenzen (37 von 63 weniger als 30 ms daneben). Die auf ganze Sekunden abgeschnittene Anzeige kippt bei dem Jitter der Antwortzeit von etwa ±25 ms mal auf die eine, mal auf die andere Seite. Vor #127 war der Takt unregelmäßig länger als 1 s, die Phase wanderte und das Problem fiel anders auf.
Lösung¶
Die angezeigte Uhr wird vom Poll-Takt entkoppelt (FreiesTrainingWindowViewModel.DisplayTime):
- Ein Anzeige-Timer (100 ms) schreibt zwischen den Ticks die Uhr mit der Wanduhr fort; bei jedem Tick wird sie auf die echte Zeit gesetzt.
- Die Anzeige läuft nie rückwärts und friert ein, wenn kein Tick mehr kommt (Stillstand, Verbindungsverlust, oder nach höchstens 1,5 s Vorlauf bei einem langsamen Tick).
- Aufzeichnung, Diagramme und
ErgoData.Timebleiben unverändert; die Uhr imErgoDataControlbindet aufDisplayTime.
Offen¶
- Visuell an echter Fahrt prüfen: gleichmäßiges Weiterzählen, Stillstand, Fortsetzen nach Verbindungsverlust.
JH Von Julius Haman vor 9 Tagen aktualisiert
- Status wurde von Neu zu Erledigt geändert
Aktionen