refactor(PMHeaterView): 优化PMHeaterViewModel代码结构,PID Limit设置值校验过程分离到独立方法。
This commit is contained in:
parent
cb182a3260
commit
7edd24d27c
|
@ -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界面值
|
||||
|
|
Loading…
Reference in New Issue