From 7edd24d27cf25cda8dafef56b75384bf07f9a72e Mon Sep 17 00:00:00 2001 From: SL <123@123.com> Date: Wed, 24 Apr 2024 08:49:50 +0800 Subject: [PATCH] =?UTF-8?q?refactor(PMHeaterView):=20=E4=BC=98=E5=8C=96PMH?= =?UTF-8?q?eaterViewModel=E4=BB=A3=E7=A0=81=E7=BB=93=E6=9E=84=EF=BC=8CPID?= =?UTF-8?q?=20Limit=E8=AE=BE=E7=BD=AE=E5=80=BC=E6=A0=A1=E9=AA=8C=E8=BF=87?= =?UTF-8?q?=E7=A8=8B=E5=88=86=E7=A6=BB=E5=88=B0=E7=8B=AC=E7=AB=8B=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Modules/PM/PMHeaterViewModel.cs | 35 ++++++++++++++----- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/MECF.Framework.UI.Client/CenterViews/Modules/PM/PMHeaterViewModel.cs b/MECF.Framework.UI.Client/CenterViews/Modules/PM/PMHeaterViewModel.cs index 2d0ead8..325715d 100644 --- a/MECF.Framework.UI.Client/CenterViews/Modules/PM/PMHeaterViewModel.cs +++ b/MECF.Framework.UI.Client/CenterViews/Modules/PM/PMHeaterViewModel.cs @@ -1071,21 +1071,40 @@ namespace MECF.Framework.UI.Client.CenterViews.Modules.PM public string PIDRateLimitSP { get; set; } + private bool ValidatePIDLimits(out double lower, out double upper, out double rate, out string reason) + { + reason = ""; + lower = double.NaN; + upper = double.NaN; + rate = double.NaN; + + if (double.TryParse(PIDLimitLowerSP, out lower) && lower is < 0 or > 100) + reason = "PID Limit Lower(%) is out of range 0% ~ 100%."; + else if (double.TryParse(PIDLimitUpperSP, out upper) && upper is < 0 or > 100) + reason = "PID Limit Upper(%) is out of range 0% ~ 100%."; + else if (double.TryParse(PIDRateLimitSP, out rate) && rate is < 0 or > 100) + reason = "PID Limit Upper(%) is out of range 0% ~ 100%."; + else if (lower >= upper) + reason = "PID Limit Lower(%) can not be greater than Upper(%)."; + + return string.IsNullOrEmpty(reason); + } + public void SetPIDLimits() { - if (double.TryParse(PIDLimitLowerSP, out var lower) && lower is < 0 or > 100) - DialogBox.ShowError("PID Limit Lower(%) is out of range 0% ~ 100%."); - else if (double.TryParse(PIDLimitUpperSP, out var upper) && upper is < 0 or > 100) - DialogBox.ShowError("PID Limit Upper(%) is out of range 0% ~ 100%."); - else if (double.TryParse(PIDRateLimitSP, out var rate) && rate is < 0 or > 100) - DialogBox.ShowError("PID Limit Upper(%) is out of range 0% ~ 100%."); - else if (lower >= upper) - DialogBox.ShowError("PID Limit Lower(%) can not be greater than Upper(%)."); + if (ValidatePIDLimits(out var lower, out var upper, out var rate, out var reason)) + DialogBox.ShowError(reason); else InvokeClient.Instance.Service.DoOperation($"{SystemName}.{TCUnits.TC1}.SetPIDLimit", lower, upper, rate); } + public void SCSavePIDLimits() + { + if (ValidatePIDLimits(out var lower, out var upper, out var rate, out var reason)) + DialogBox.ShowError(reason); + } + #endregion //#region TC1界面值