Skip to content

Commit 7f0fdc0

Browse files
committed
Make Data Logger interval configurable.
1 parent 6b62c2a commit 7f0fdc0

File tree

4 files changed

+46
-1
lines changed

4 files changed

+46
-1
lines changed

Source/Menu/Options.Designer.cs

Lines changed: 38 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Source/Menu/Options.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,7 @@ public OptionsForm(UserSettings settings, UpdateManager updateManager, Telemetry
212212
checkDataLogPhysics.Checked = Settings.DataLogPhysics;
213213
checkDataLogSteamPerformance.Checked = Settings.DataLogExclusiveSteamPerformance;
214214
checkDataLogSteamPowerCurve.Checked = Settings.DataLogExclusiveSteamPowerCurve;
215+
dataLoggerInterval.Value = Settings.DataLoggerInterval;
215216
checkVerboseConfigurationMessages.Checked = Settings.VerboseConfigurationMessages;
216217

217218
// Evaluation tab
@@ -476,6 +477,7 @@ void buttonOK_Click(object sender, EventArgs e)
476477
Settings.DataLogPhysics = checkDataLogPhysics.Checked;
477478
Settings.DataLogExclusiveSteamPerformance = checkDataLogSteamPerformance.Checked;
478479
Settings.DataLogExclusiveSteamPowerCurve = checkDataLogSteamPowerCurve.Checked;
480+
Settings.DataLoggerInterval = (int)dataLoggerInterval.Value;
479481
Settings.VerboseConfigurationMessages = checkVerboseConfigurationMessages.Checked;
480482

481483
// Evaluation tab

Source/Orts.Settings/UserSettings.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,8 @@ public enum DirectXFeature
218218
public bool DataLogExclusiveSteamPerformance { get; set; }
219219
[Default(false)]
220220
public bool DataLogExclusiveSteamPowerCurve { get; set; }
221+
[Default(0)]
222+
public int DataLoggerInterval { get; set; }
221223
[Default(false)]
222224
public bool VerboseConfigurationMessages { get; set; }
223225

Source/RunActivity/Viewer3D/InfoDisplay.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,15 @@ public class InfoDisplay
3939

4040
int FrameNumber;
4141
double LastUpdateRealTime; // update text message only 10 times per second
42+
double NextLogTime;
4243

4344
float PreviousLoggedSpeedMpH = -1.0f;
4445

4546
public InfoDisplay(Viewer viewer)
4647
{
4748
Viewer = viewer;
4849
Logger = new DataLogger(Path.Combine(Viewer.Settings.LoggingPath, "OpenRailsDump.csv"));
50+
NextLogTime = Viewer.RealTime;
4951

5052
if (Viewer.Settings.DataLogger)
5153
DataLoggerStart();
@@ -81,9 +83,10 @@ public void PrepareFrame(RenderFrame frame, ElapsedTime elapsedTime)
8183
Profile(elapsedRealSeconds);
8284
}
8385

84-
if (Viewer.Settings.DataLogger)
86+
if (Viewer.Settings.DataLogger && (Viewer.Settings.DataLoggerInterval == 0 || Viewer.RealTime >= NextLogTime))
8587
{
8688
DataLoggerLog();
89+
NextLogTime = Viewer.RealTime + Viewer.Settings.DataLoggerInterval / 1000f;
8790
}
8891
}
8992

0 commit comments

Comments
 (0)