From 6794760b4c8d377d23423bfbb12d0e9aa816783f Mon Sep 17 00:00:00 2001 From: "GukSang.Jin" Date: Wed, 10 Jun 2026 10:33:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B020260610?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HiddenSpeedSettingsViewModel.cs | 57 ------------------- .../HiddenSpeedSettingsWindow.xaml | 33 +---------- DentistryHandpieces/MainWindow.xaml | 22 +++++++ DentistryHandpieces/MainWindowViewModel.cs | 33 ++++++++++- DentistryHandpieces/Models.cs | 3 + 5 files changed, 59 insertions(+), 89 deletions(-) diff --git a/DentistryHandpieces/HiddenSpeedSettingsViewModel.cs b/DentistryHandpieces/HiddenSpeedSettingsViewModel.cs index 04e4ea8..5e68cb2 100644 --- a/DentistryHandpieces/HiddenSpeedSettingsViewModel.cs +++ b/DentistryHandpieces/HiddenSpeedSettingsViewModel.cs @@ -22,12 +22,10 @@ public sealed class SpeedCoefficientSettingRow : ObservableObject public sealed class HiddenSpeedSettingsViewModel : ObservableObject { - private const ushort LoadSpeedSettingRegister = 414; private const ushort FirstSpeedCoefficientRegister = 1200; private const int SpeedCoefficientCount = 30; private readonly IPlcRegisterService _plcRegisterService; private readonly PlcConnectionConfig _plcConfig; - private string _loadSpeedSettingInput = string.Empty; private string _statusText = "打开后将从 PLC 读取参数。"; private bool _isBusy; @@ -36,7 +34,6 @@ public sealed class HiddenSpeedSettingsViewModel : ObservableObject _plcRegisterService = plcRegisterService; _plcConfig = plcConfig; ReadCommand = new AsyncRelayCommand(ReadAsync); - SaveLoadSpeedSettingCommand = new AsyncRelayCommand(SaveLoadSpeedSettingAsync); SaveSpeedCoefficientCommand = new AsyncRelayCommand(SaveSpeedCoefficientAsync); for (int index = 0; index < SpeedCoefficientCount; index++) @@ -55,16 +52,8 @@ public sealed class HiddenSpeedSettingsViewModel : ObservableObject public IAsyncRelayCommand ReadCommand { get; } - public IAsyncRelayCommand SaveLoadSpeedSettingCommand { get; } - public IAsyncRelayCommand SaveSpeedCoefficientCommand { get; } - public string LoadSpeedSettingInput - { - get => _loadSpeedSettingInput; - set => SetProperty(ref _loadSpeedSettingInput, value); - } - public string StatusText { get => _statusText; @@ -95,45 +84,6 @@ public sealed class HiddenSpeedSettingsViewModel : ObservableObject } } - private async Task SaveLoadSpeedSettingAsync() - { - if (_isBusy) - { - return; - } - - if (!TryParseFloat(LoadSpeedSettingInput, out float loadSpeedSetting)) - { - StatusText = "负载转速设置必须是有效数字。"; - return; - } - - _isBusy = true; - StatusText = "正在保存负载转速设置..."; - try - { - await _plcRegisterService.WriteFloatAsync(_plcConfig, LoadSpeedSettingRegister, loadSpeedSetting); - float confirmedValue = await _plcRegisterService.ReadFloatAsync(_plcConfig, LoadSpeedSettingRegister); - if (float.IsNaN(confirmedValue) - || float.IsInfinity(confirmedValue) - || !AreEquivalentFloatRegisterValues(loadSpeedSetting, confirmedValue)) - { - throw new InvalidOperationException("PLC 写入后回读不一致。"); - } - - LoadSpeedSettingInput = FormatNumber(confirmedValue); - StatusText = "负载转速设置已保存并回读确认。"; - } - catch (Exception ex) - { - StatusText = $"负载转速设置保存失败:{OperatorMessageFormatter.FromException(ex)}"; - } - finally - { - _isBusy = false; - } - } - private async Task SaveSpeedCoefficientAsync(SpeedCoefficientSettingRow? row) { if (_isBusy || row is null) @@ -175,16 +125,9 @@ public sealed class HiddenSpeedSettingsViewModel : ObservableObject private async Task ReadValuesAsync() { - float loadSpeedSetting = await _plcRegisterService.ReadFloatAsync(_plcConfig, LoadSpeedSettingRegister); - if (float.IsNaN(loadSpeedSetting) || float.IsInfinity(loadSpeedSetting)) - { - throw new InvalidOperationException("负载转速设置读取无效。"); - } - ushort[] addresses = SpeedCoefficientSettings.Select(static row => row.Address).ToArray(); IReadOnlyDictionary values = await _plcRegisterService.ReadFloatValuesAsync(_plcConfig, addresses); - LoadSpeedSettingInput = FormatNumber(loadSpeedSetting); foreach (SpeedCoefficientSettingRow row in SpeedCoefficientSettings) { if (!values.TryGetValue(row.Address, out float value) diff --git a/DentistryHandpieces/HiddenSpeedSettingsWindow.xaml b/DentistryHandpieces/HiddenSpeedSettingsWindow.xaml index 5420c67..b3c71c3 100644 --- a/DentistryHandpieces/HiddenSpeedSettingsWindow.xaml +++ b/DentistryHandpieces/HiddenSpeedSettingsWindow.xaml @@ -38,40 +38,11 @@ - - - - - - - - - - -