运行时间计算更改

This commit is contained in:
2025-04-17 09:26:54 +08:00
parent cf627cf650
commit 377836f9bb
2 changed files with 17 additions and 9 deletions

View File

@@ -33,14 +33,14 @@ namespace CapMachine.Wpf.Models
/// <exception cref="NotImplementedException"></exception>
private void ProRunCycleAction(object? sender, ElapsedEventArgs e)
{
CycleTimer.Stop();
Application.Current.Dispatcher.BeginInvoke(new Action(() =>
{
CalcTime();
}));
//CycleTimer.Stop();
//CycleTimer.Start();
CycleTimer.Start();
}
/// <summary>
@@ -50,14 +50,14 @@ namespace CapMachine.Wpf.Models
{
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;
}
/// <summary>
@@ -104,6 +106,8 @@ namespace CapMachine.Wpf.Models
{
CycleTimer.Stop();
CalcTime();
//暂停时间清零可能是多次开始执行程序导致PauseTotalSecTime残留到下一个程序计时中
PauseTotalSecTime = 0;
}
/// <summary>

View File

@@ -3263,7 +3263,6 @@ namespace CapMachine.Wpf.Services
/// </summary>
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
/// </summary>
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)