diff --git a/CapMachine.Wpf/Models/ProRunTimeCalc.cs b/CapMachine.Wpf/Models/ProRunTimeCalc.cs index 36b0a71..1135bfb 100644 --- a/CapMachine.Wpf/Models/ProRunTimeCalc.cs +++ b/CapMachine.Wpf/Models/ProRunTimeCalc.cs @@ -33,14 +33,14 @@ namespace CapMachine.Wpf.Models /// private void ProRunCycleAction(object? sender, ElapsedEventArgs e) { + CycleTimer.Stop(); + Application.Current.Dispatcher.BeginInvoke(new Action(() => { CalcTime(); })); - //CycleTimer.Stop(); - - //CycleTimer.Start(); + CycleTimer.Start(); } /// @@ -49,15 +49,15 @@ namespace CapMachine.Wpf.Models private void CalcTime() { ProEndDt = DateTime.Now; - - ProRunTimeStr = ConvertSecToDHMS((int)((ProEndDt - ProStartDt).TotalSeconds - PauseTotalSecTime)); + + ProRunTimeStr = ConvertSecToDHMS((int)Math.Round((ProEndDt - ProStartDt).TotalSeconds - PauseTotalSecTime)); } private string ConvertSecToDHMS(int totalSeconds) { // 驗證非負(可根據需求調整) if (totalSeconds < 0) - return "00:00:00:00"; + return "00天:00时:00分:00秒"; int days = totalSeconds / 86400; // 1天 = 86400秒 int remainingSeconds = totalSeconds % 86400; @@ -79,6 +79,8 @@ namespace CapMachine.Wpf.Models { ProStartDt = DateTime.Now; CycleTimer.Start(); + //暂停时间清零,可能是多次开始执行程序,导致PauseTotalSecTime残留到下一个程序计时中 + PauseTotalSecTime = 0; } /// @@ -104,6 +106,8 @@ namespace CapMachine.Wpf.Models { CycleTimer.Stop(); CalcTime(); + //暂停时间清零,可能是多次开始执行程序,导致PauseTotalSecTime残留到下一个程序计时中 + PauseTotalSecTime = 0; } /// diff --git a/CapMachine.Wpf/Services/ProRuntimeService.cs b/CapMachine.Wpf/Services/ProRuntimeService.cs index feff63b..ff13549 100644 --- a/CapMachine.Wpf/Services/ProRuntimeService.cs +++ b/CapMachine.Wpf/Services/ProRuntimeService.cs @@ -3263,7 +3263,6 @@ namespace CapMachine.Wpf.Services /// public void StartProRun() { - //开始计时 ProRunTimeCalcModel.StartProRunTime(); @@ -3320,6 +3319,8 @@ namespace CapMachine.Wpf.Services ProRunTaskScanTimeEnable = false; ProRunTimeScanTokenSource.Cancel(); + LogService.Info($"【时间】: {DateTime.Now.ToString()} - 程序执行暂停"); + //斜坡打点暂定 foreach (var itemProExModel in ListProExModel) { @@ -3332,12 +3333,15 @@ namespace CapMachine.Wpf.Services /// public void ContinueProRun() { + ProRunTimeCalcModel.ContinueProRunTime(); + PauseEndDt = DateTime.Now; //统计的暂停的时间 var PauseTime = (PauseEndDt - PauseStartDt).TotalSeconds; - ProRunTimeCalcModel.PauseTotalSecTime = ProRunTimeCalcModel.PauseTotalSecTime + (int)PauseTime; - ProRunTimeCalcModel.ContinueProRunTime(); + ProRunTimeCalcModel.PauseTotalSecTime = ProRunTimeCalcModel.PauseTotalSecTime + (int)Math.Round(PauseTime); + + LogService.Info($"【时间】: {DateTime.Now.ToString()} - 程序执行继续"); //斜坡打点暂定 foreach (var itemProExModel in ListProExModel)