refactor(PMHeaterView): 优化PMHeaterViewModel代码结构,PID Limit设置值校验过程分离到独立方法。

This commit is contained in:
SL 2024-04-24 08:49:50 +08:00
parent cb182a3260
commit 7edd24d27c
1 changed files with 27 additions and 8 deletions

View File

@ -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界面值