Projekt

Allgemein

Profil

Feature #49

Von Julius Haman vor 14 Tagen aktualisiert

### Problem 

 Im Hauptchart (ErgometerDataPlotControl.ShowMetricsTrainingData) werden Ist-Werte (Cadence, ActualPulse, ...) TargetPower, ActualPulse) bereits aus den gespeicherten TrainingPoints gezeichnet. Die überlagerte Soll-Kurve (DesiredPulseLine, bei Puls-/Leistungsprofilen) wird dagegen bei jeder Anzeige neu aus Profile.GetDrawingPoints() berechnet - das ist Profildaten, keine Trainingsdaten. 

 Dadurch geht Information verloren: GetDrawingPoints() nutzt den zur Laufzeit verstellbaren Intensitätsfaktor Profile.HeightFactor ([NotMapped], nicht persistiert, startet jede Session bei 1). Schaut man sich ein altes Training später an, zeigt die Soll-Linie die Kurve mit dem heutigen Standard-Faktor, nicht mit dem, was während des damaligen Trainings durch IncreaseHeight/DecreaseHeight tatsächlich eingestellt war. 

 ### Vorschlag - nur Pulsprofil ("rosa Linie") 

 Seit #44 gibt es dafür TrainingPoint.TargetPulse, das bereits die passenden Felder direkt am TrainingPoint: TargetPower und TargetPulse, die den tatsächlich zum Aufnahmezeitpunkt geltenden Sollpuls festhält Sollwert festhalten (inkl. damaliger Intensitätsanpassung). 

 ### Vorschlag 

 Grundsatz: im Hauptchart sollen ausschließlich Trainingsdaten angezeigt werden, keine (live nachberechneten) Profildaten. 

 - Soll-Kurve bei Leistungsprofil-Trainings aus tp.TargetPower statt Profile.GivenPowerAt() zeichnen. 
 - Soll-Kurve bei Pulsprofil-Trainings (die "rosa Linie") aus tp.TargetPulse statt Profile.GivenPulseAt() zeichnen. 
 - Prüfen, ob/wie das mit der bestehenden DesiredPulseLine-Infrastruktur (SetDesiredCurve, live vs. Historie) zusammenpasst, oder ob eine grundsätzlichere Überarbeitung der Chart-Datenquellen sinnvoll ist (daher als eigenes, möglicherweise größeres Ticket statt Teil von #44). 

 ### Leistungsprofil (TargetPower) - aktuell nicht Teil dieses Tickets 

 Ursprünglich war hier auch geplant, die Leistungsprofil-Sollkurve analog aus tp.TargetPower zu ziehen. TrainingPoint.TargetPower steht aber laut Spalten-Review nach #44 selbst auf der Streichliste (ActualPower reicht dafür in aller Regel, siehe Diskussion zu #44) - ohne gespeicherten Sollwert fehlt damit die Datenquelle für eine trainingsdatenbasierte Leistungs-Sollkurve. Sollte TargetPower tatsächlich entfallen, bleibt die Leistungsprofil-Sollkurve entweder weiterhin profilbasiert (Status quo, Profile.GivenPowerAt()) oder entfällt ganz - separat zu klären, sobald die TargetPower-Streichung selbst umgesetzt wird. 

 ### Kontext 

 Entstanden aus der Spalten-Review von TrainingPoint nach #44.

Zurück