From 2be7a2c86edf2d286cdda3b3d7f520b8949cc0f8 Mon Sep 17 00:00:00 2001 From: Michel Dagenais Date: Thu, 18 Mar 2021 22:22:09 -0400 Subject: [PATCH] Compute the altitude incrementally from slope for Manual Slope Mode (#3847) --- src/Train/TrainSidebar.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/Train/TrainSidebar.cpp b/src/Train/TrainSidebar.cpp index bad29536c..339e272c3 100644 --- a/src/Train/TrainSidebar.cpp +++ b/src/Train/TrainSidebar.cpp @@ -1788,6 +1788,13 @@ void TrainSidebar::guiUpdate() // refreshes the telemetry rtData.setAltitude(displayAltitude); } } + else if (!(status & RT_MODE_ERGO)) { + // For manual slope mode, estimate vertical change based upon time passed and slope. + // Note this isn't exactly right but is very close - we should use the previous slope for the time passed. + double altitudeDeltaMeters = slope * (10 * distanceTick); // ((slope / 100) * distanceTick) * 1000 + displayAltitude += altitudeDeltaMeters; + rtData.setAltitude(displayAltitude); + } // time total_msecs = session_elapsed_msec + session_time.elapsed();