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.