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; }
|
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()
|
public void SetPIDLimits()
|
||||||
{
|
{
|
||||||
if (double.TryParse(PIDLimitLowerSP, out var lower) && lower is < 0 or > 100)
|
if (ValidatePIDLimits(out var lower, out var upper, out var rate, out var reason))
|
||||||
DialogBox.ShowError("PID Limit Lower(%) is out of range 0% ~ 100%.");
|
DialogBox.ShowError(reason);
|
||||||
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(%).");
|
|
||||||
else
|
else
|
||||||
InvokeClient.Instance.Service.DoOperation($"{SystemName}.{TCUnits.TC1}.SetPIDLimit",
|
InvokeClient.Instance.Service.DoOperation($"{SystemName}.{TCUnits.TC1}.SetPIDLimit",
|
||||||
lower, upper, rate);
|
lower, upper, rate);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SCSavePIDLimits()
|
||||||
|
{
|
||||||
|
if (ValidatePIDLimits(out var lower, out var upper, out var rate, out var reason))
|
||||||
|
DialogBox.ShowError(reason);
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
//#region TC1界面值
|
//#region TC1界面值
|
||||||
|
|
Loading…
Reference in New Issue