diff --git a/CHANGELOG.md b/CHANGELOG.md index 5b3de80..64601ba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). ## [Unreleased] +### Changed + - ProcessorUtils Uptime methods changed to StartTime ## [14.1.0] - 2021-01-21 ### Added diff --git a/ICD.Common.Utils/ProcessorUtils.SimplSharp.cs b/ICD.Common.Utils/ProcessorUtils.SimplSharp.cs index f42b52c..3b9bc65 100644 --- a/ICD.Common.Utils/ProcessorUtils.SimplSharp.cs +++ b/ICD.Common.Utils/ProcessorUtils.SimplSharp.cs @@ -228,21 +228,6 @@ namespace ICD.Common.Utils IcdConsole.SendControlSystemCommand("reboot", ref consoleResult); } - /// - /// Gets the uptime for the system - /// - /// - [PublicAPI] - public static TimeSpan GetSystemUptime() - { - if (s_SystemUptimeStartTimeUtc == null) - UpdateSystemStartTime(); - - if (s_SystemUptimeStartTimeUtc != null) - return IcdEnvironment.GetUtcTime() - s_SystemUptimeStartTimeUtc.Value; - return default(TimeSpan); - } - /// /// Gets the time the system was started /// DateTime that uptime starts @@ -262,26 +247,27 @@ namespace ICD.Common.Utils /// /// [PublicAPI] - public static TimeSpan GetProgramUptime() + public static DateTime? GetProgramStartTime() { - if (s_ProgramUptimeStartTimeUtc == null) - { - string uptime = GetProgramUptimeFeedback((int)ProgramUtils.ProgramNumber); - Match match = Regex.Match(uptime, UPTIME_REGEX); - if (!match.Success) - return default(TimeSpan); + if (s_ProgramUptimeStartTimeUtc != null) + return s_ProgramUptimeStartTimeUtc; - int days = int.Parse(match.Groups["days"].Value); - int hours = int.Parse(match.Groups["hours"].Value); - int minutes = int.Parse(match.Groups["minutes"].Value); - int seconds = int.Parse(match.Groups["seconds"].Value); - int milliseconds = int.Parse(match.Groups["milliseconds"].Value); - TimeSpan span = new TimeSpan(days, hours, minutes, seconds, milliseconds); - s_ProgramUptimeStartTimeUtc = IcdEnvironment.GetUtcTime() - span; - } + string uptime = GetProgramUptimeFeedback((int)ProgramUtils.ProgramNumber); + Match match = Regex.Match(uptime, UPTIME_REGEX); + if (!match.Success) + return null; - return IcdEnvironment.GetUtcTime() - s_ProgramUptimeStartTimeUtc.Value; + int days = int.Parse(match.Groups["days"].Value); + int hours = int.Parse(match.Groups["hours"].Value); + int minutes = int.Parse(match.Groups["minutes"].Value); + int seconds = int.Parse(match.Groups["seconds"].Value); + int milliseconds = int.Parse(match.Groups["milliseconds"].Value); + + TimeSpan span = new TimeSpan(days, hours, minutes, seconds, milliseconds); + s_ProgramUptimeStartTimeUtc = IcdEnvironment.GetUtcTime() - span; + + return s_ProgramUptimeStartTimeUtc; } #endregion diff --git a/ICD.Common.Utils/ProcessorUtils.Standard.cs b/ICD.Common.Utils/ProcessorUtils.Standard.cs index cfa1a58..a043bf6 100644 --- a/ICD.Common.Utils/ProcessorUtils.Standard.cs +++ b/ICD.Common.Utils/ProcessorUtils.Standard.cs @@ -137,16 +137,6 @@ namespace ICD.Common.Utils throw new NotSupportedException(); } - /// - /// Gets the uptime for the system - /// - /// - [PublicAPI] - public static TimeSpan GetSystemUptime() - { - return TimeSpan.FromMilliseconds(Environment.TickCount); - } - /// /// Gets the time the system was started /// DateTime that uptime starts @@ -162,14 +152,14 @@ namespace ICD.Common.Utils } /// - /// Gets the uptime + /// Gets the time the program was started + /// Datetime the program starts /// /// [PublicAPI] - public static TimeSpan GetProgramUptime() + public static DateTime? GetProgramStartTime() { - var current = System.Diagnostics.Process.GetCurrentProcess(); - return IcdEnvironment.GetLocalTime() - current.StartTime; + return GetSystemStartTime(); } #endregion