From a3518bab088163acc242c7ebc724881f1f4cbb04 Mon Sep 17 00:00:00 2001 From: The6P4C Date: Fri, 29 Sep 2017 16:11:14 +1000 Subject: [PATCH] Set system time! --- GPSDOTimeSync/FormMain.cs | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/GPSDOTimeSync/FormMain.cs b/GPSDOTimeSync/FormMain.cs index 799ceb3..17dd3bf 100644 --- a/GPSDOTimeSync/FormMain.cs +++ b/GPSDOTimeSync/FormMain.cs @@ -6,6 +6,7 @@ using System.Windows.Forms; using GPSDOTimeSync.Devices.Thunderbolt; using GPSDOTimeSync.TimeProviders; using GPSDOTimeSync.TimeProviders.Thunderbolt; +using System.Diagnostics; namespace GPSDOTimeSync { public partial class FormMain : Form { @@ -27,6 +28,7 @@ namespace GPSDOTimeSync { } }; + private int lastSystemTimeUpdate; private ITimeProvider timeProvider; public FormMain() { @@ -44,6 +46,8 @@ namespace GPSDOTimeSync { InitializeComponent(); PopulateDropDowns(); + lastSystemTimeUpdate = 0; + statusStrip.Renderer = new TruncatedTextEllipsisRenderer(); latestLogMessage.Text = ""; @@ -81,9 +85,23 @@ namespace GPSDOTimeSync { timeProvider = TIME_PROVIDER_CONSTRUCTORS[deviceName](serialPort); timeProvider.TimeAvailable += (DateTime dateTime) => { + if (Environment.TickCount - lastSystemTimeUpdate < 5000) { + return; + } + + SystemTimeUtils.SetSystemTime(dateTime); + Invoke(new Action(() => { - + AddMessageToLog( + string.Format( + "System time set to {0}.", + dateTime.ToString("HH:mm:ss dd\\/MM\\/yyyy") + ), + LogLevel.Info + ); })); + + lastSystemTimeUpdate = Environment.TickCount; }; timeProvider.Log += (string message, LogLevel logLevel) => {