From 3a9710e6fa8de159fd46d2baf656cf4b09612f06 Mon Sep 17 00:00:00 2001 From: "GukSang.Jin" Date: Wed, 10 Jun 2026 16:52:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DentistryHandpieces/MainWindowViewModel.cs | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/DentistryHandpieces/MainWindowViewModel.cs b/DentistryHandpieces/MainWindowViewModel.cs index d06a206..debd641 100644 --- a/DentistryHandpieces/MainWindowViewModel.cs +++ b/DentistryHandpieces/MainWindowViewModel.cs @@ -155,7 +155,8 @@ public sealed class MainWindowViewModel : ObservableObject SpeedTorqueResetEnabledCoil, SpeedTorqueResetDoneCoil, AxialResetEnabledCoil, - AxialResetDoneCoil + AxialResetDoneCoil, + NoLoadSpeedRecordCoil ]; private readonly IPlcCoilService _plcCoilService; @@ -3641,15 +3642,27 @@ public sealed class MainWindowViewModel : ObservableObject private void FinalizeNoLoadSpeedRunIfDue() { if (_activeNoLoadSpeedRun is null - || !_noLoadCaptureDeadline.HasValue - || DateTime.Now < _noLoadCaptureDeadline.Value) + || !_noLoadCaptureDeadline.HasValue) { return; } + // 实际转速达到设定转速的 98%:立即结束 + bool speedReached = _parameterConfig.NoLoadSpeedSetting > 0 + && _realtimeSpeed >= _parameterConfig.NoLoadSpeedSetting * 0.98; + + // 转速未达标且未超时:继续等待 + if (!speedReached && DateTime.Now < _noLoadCaptureDeadline.Value) + { + return; + } + + // 转速已达标或已超时:结束测试 AppendLatestSample(_activeNoLoadSpeedRun); _activeNoLoadSpeedRun.CompletedAt = DateTime.Now; - _activeNoLoadSpeedRun.CompletionStatus = "记录完成"; + _activeNoLoadSpeedRun.CompletionStatus = speedReached + ? "状态:达到系统转速,记录完成" + : "记录完成"; _activeNoLoadSpeedRun.NoLoadSpeedRpm = _noLoadSpeedRecord; _activeNoLoadSpeedRun.NoLoadSpeedErrorRatePercent = _noLoadSpeedErrorRate; _completedRuns.Add(_activeNoLoadSpeedRun);