namespace Yw.WinFrmUI
|
{
|
/// <summary>
|
/// 水泵属性视图
|
/// </summary>
|
public class HydroPumpViewModel : HydroLinkViewModel, IHydroCalcuPumpResult
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public HydroPumpViewModel() { }
|
|
/// <summary>
|
///
|
/// </summary>
|
public HydroPumpViewModel(Yw.Model.HydroPumpInfo rhs, Yw.Model.HydroModelInfo hydroInfo) : base(rhs, hydroInfo)
|
{
|
this.RatedP = rhs.RatedP;
|
this.UpdatePropStatus(nameof(this.RatedP), rhs, nameof(rhs.RatedP));
|
this.RatedQ = rhs.RatedQ;
|
this.UpdatePropStatus(nameof(this.RatedQ), rhs, nameof(rhs.RatedQ));
|
this.RatedH = rhs.RatedH;
|
this.UpdatePropStatus(nameof(this.RatedH), rhs, nameof(rhs.RatedH));
|
this.RatedN = rhs.RatedN;
|
this.UpdatePropStatus(nameof(this.RatedN), rhs, nameof(rhs.RatedN));
|
this.RatedHz = rhs.RatedHz;
|
this.UpdatePropStatus(nameof(this.RatedHz), rhs, nameof(rhs.RatedHz));
|
this.SpeedRatio = rhs.SpeedRatio;
|
this.UpdatePropStatus(nameof(this.SpeedRatio), rhs, nameof(rhs.SpeedRatio));
|
this.SpeedRatioPattern = rhs.SpeedRatioPattern;
|
this.UpdatePropStatus(nameof(this.SpeedRatioPattern), rhs, nameof(rhs.SpeedRatioPattern));
|
this.CurveQH = rhs.CurveQH;
|
this.UpdatePropStatus(nameof(this.CurveQH), rhs, nameof(rhs.CurveQH));
|
this.CurveQP = rhs.CurveQP;
|
this.UpdatePropStatus(nameof(this.CurveQP), rhs, nameof(rhs.CurveQP));
|
this.CurveQE = rhs.CurveQE;
|
this.UpdatePropStatus(nameof(this.CurveQE), rhs, nameof(rhs.CurveQE));
|
|
this.Vmo = rhs;
|
}
|
|
/// <summary>
|
/// 水泵状态
|
/// </summary>
|
[Category("数据")]
|
[DisplayName("水泵状态")]
|
[PropertyOrder(1003)]
|
[Browsable(true)]
|
[TypeConverter(typeof(HydroPumpStatusConverter))]
|
public override string LinkStatus { get; set; }
|
|
/// <summary>
|
/// 额定流量
|
/// </summary>
|
[Category("数据")]
|
[Display(Name = "额定流量(m³/h)")]
|
[DisplayName("额定流量")]
|
[DisplayUnit("m³/h")]
|
[PropertyOrder(2001)]
|
[Browsable(true)]
|
public double? RatedQ { get; set; }
|
|
/// <summary>
|
/// 额定扬程
|
/// </summary>
|
[Category("数据")]
|
[Display(Name = "额定扬程(m)")]
|
[DisplayName("额定扬程")]
|
[DisplayUnit("m")]
|
[PropertyOrder(2002)]
|
[Browsable(true)]
|
public double? RatedH { get; set; }
|
|
/// <summary>
|
/// 额定功率
|
/// </summary>
|
[Category("数据")]
|
[Display(Name = "额定功率(kW)")]
|
[DisplayName("额定功率")]
|
[DisplayUnit("kW")]
|
[PropertyOrder(2003)]
|
[Browsable(true)]
|
public double RatedP { get; set; }
|
|
/// <summary>
|
/// 额定转速
|
/// </summary>
|
[Category("数据")]
|
[Display(Name = "额定转速(r/min)")]
|
[DisplayName("额定转速")]
|
[DisplayUnit("r/min")]
|
[PropertyOrder(2004)]
|
[Browsable(true)]
|
public double? RatedN { get; set; }
|
|
/// <summary>
|
/// 额定频率
|
/// </summary>
|
[Category("数据")]
|
[Display(Name = "额定频率")]
|
[DisplayName("额定频率")]
|
[DisplayUnit("hz")]
|
[PropertyOrder(2005)]
|
[Browsable(true)]
|
public double RatedHz { get; set; }
|
|
/// <summary>
|
/// 设定频率
|
/// </summary>
|
[Category("数据")]
|
[Display(Name = "设定频率")]
|
[DisplayName("设定频率")]
|
[DisplayUnit("hz")]
|
[PropertyOrder(2006)]
|
[Browsable(true)]
|
public double CurrentHz
|
{
|
get { return this.SpeedRatio * this.RatedHz; }
|
set
|
{
|
if (this.RatedHz <= 0)
|
{
|
return;
|
}
|
this.SpeedRatio = value / this.RatedHz;
|
}
|
}
|
|
/// <summary>
|
/// 转速比
|
/// </summary>
|
[Category("数据")]
|
[DisplayName("转速比")]
|
[PropertyOrder(2007)]
|
[Browsable(false)]
|
public double SpeedRatio { get; set; }
|
|
/// <summary>
|
/// 转速比模式
|
/// </summary>
|
[Category("数据")]
|
[DisplayName("转速比模式")]
|
[PropertyOrder(2008)]
|
[Browsable(false)]
|
public string SpeedRatioPattern { get; set; }
|
|
/// <summary>
|
/// 性能曲线
|
/// </summary>
|
[Category("数据")]
|
[DisplayName("性能曲线")]
|
[PropertyOrder(2009)]
|
[HydroCurvePro(HydroCurve.Pump)]
|
[Browsable(true)]
|
public string Curve
|
{
|
get
|
{
|
if (string.IsNullOrEmpty(this.CurveQH))
|
{
|
return "未配置";
|
}
|
return "已配置";
|
}
|
}
|
|
/// <summary>
|
/// 流量扬程曲线
|
/// </summary>
|
[Category("数据")]
|
[DisplayName("流量扬程曲线")]
|
[PropertyOrder(2010)]
|
[HydroCurvePro(HydroCurve.PumpQH)]
|
[Browsable(false)]
|
public string CurveQH { get; set; }
|
|
/// <summary>
|
/// 流量功率曲线
|
/// </summary>
|
[Category("数据")]
|
[DisplayName("流量功率曲线")]
|
[PropertyOrder(2011)]
|
[HydroCurvePro(HydroCurve.PumpQP)]
|
[Browsable(false)]
|
public string CurveQP { get; set; }
|
|
/// <summary>
|
/// 流量效率曲线
|
/// </summary>
|
[Category("数据")]
|
[DisplayName("流量效率曲线")]
|
[PropertyOrder(2012)]
|
[HydroCurvePro(HydroCurve.PumpQE)]
|
[Browsable(false)]
|
public string CurveQE { get; set; }
|
|
|
/// <summary>
|
/// 流量
|
/// </summary>
|
[Category("计算结果")]
|
[DisplayName("流量")]
|
[PropertyOrder(10001)]
|
[DisplayUnit("m³/h")]
|
[HydroCalcuPro]
|
[ShowEditor(false)]
|
[Browsable(false)]
|
public override double? CalcuFlow { get; set; }
|
|
/// <summary>
|
/// 流速
|
/// </summary>
|
[Category("计算结果")]
|
[DisplayName("流速")]
|
[PropertyOrder(10002)]
|
[DisplayUnit("m/s")]
|
[HydroCalcuPro]
|
[ShowEditor(false)]
|
[Browsable(false)]
|
public override double? CalcuVelocity { get; set; }
|
|
/// <summary>
|
/// 水头损失
|
/// </summary>
|
[Category("计算结果")]
|
[DisplayName("水头损失")]
|
[PropertyOrder(10003)]
|
[DisplayUnit("m")]
|
[HydroCalcuPro]
|
[ShowEditor(false)]
|
[Browsable(false)]
|
public override double? CalcuHeadLoss { get; set; }
|
|
|
/// <summary>
|
/// 流量
|
/// </summary>
|
[Category("计算结果")]
|
[DisplayName("流量")]
|
[PropertyOrder(11001)]
|
[DisplayUnit("m³/h")]
|
[HydroCalcuPro]
|
[ShowEditor(false)]
|
[Browsable(true)]
|
public double? CalcuQ { get; set; }
|
|
/// <summary>
|
/// 扬程
|
/// </summary>
|
[Category("计算结果")]
|
[DisplayName("扬程")]
|
[PropertyOrder(11002)]
|
[DisplayUnit("m")]
|
[HydroCalcuPro]
|
[ShowEditor(false)]
|
[Browsable(true)]
|
public double? CalcuH { get; set; }
|
|
/// <summary>
|
/// 功率
|
/// </summary>
|
[Category("计算结果")]
|
[DisplayName("功率")]
|
[PropertyOrder(11003)]
|
[DisplayUnit("kW")]
|
[HydroCalcuPro]
|
[ShowEditor(false)]
|
[Browsable(true)]
|
public double? CalcuP { get; set; }
|
|
/// <summary>
|
/// 效率
|
/// </summary>
|
[Category("计算结果")]
|
[DisplayName("效率")]
|
[PropertyOrder(11004)]
|
[DisplayUnit("%")]
|
[HydroCalcuPro]
|
[ShowEditor(false)]
|
[Browsable(true)]
|
public double? CalcuE { get; set; }
|
|
/// <summary>
|
///
|
/// </summary>
|
[Browsable(false)]
|
public new Yw.Model.HydroPumpInfo Vmo { get; set; }
|
|
/// <summary>
|
///
|
/// </summary>
|
public override void UpdateProperty()
|
{
|
base.UpdateProperty();
|
this.RatedP = this.Vmo.RatedP;
|
this.UpdatePropStatus(nameof(this.RatedP), this.Vmo, nameof(this.Vmo.RatedP));
|
this.RatedQ = this.Vmo.RatedQ;
|
this.UpdatePropStatus(nameof(this.RatedQ), this.Vmo, nameof(this.Vmo.RatedQ));
|
this.RatedH = this.Vmo.RatedH;
|
this.UpdatePropStatus(nameof(this.RatedH), this.Vmo, nameof(this.Vmo.RatedH));
|
this.RatedN = this.Vmo.RatedN;
|
this.UpdatePropStatus(nameof(this.RatedN), this.Vmo, nameof(this.Vmo.RatedN));
|
this.RatedHz = this.Vmo.RatedHz;
|
this.UpdatePropStatus(nameof(this.RatedHz), this.Vmo, nameof(this.Vmo.RatedHz));
|
this.SpeedRatio = this.Vmo.SpeedRatio;
|
this.UpdatePropStatus(nameof(this.SpeedRatio), this.Vmo, nameof(this.Vmo.SpeedRatio));
|
this.SpeedRatioPattern = this.Vmo.SpeedRatioPattern;
|
this.UpdatePropStatus(nameof(this.SpeedRatioPattern), this.Vmo, nameof(this.Vmo.SpeedRatioPattern));
|
this.CurveQH = this.Vmo.CurveQH;
|
this.UpdatePropStatus(nameof(this.CurveQH), this.Vmo, nameof(this.Vmo.CurveQH));
|
this.CurveQP = this.Vmo.CurveQP;
|
this.UpdatePropStatus(nameof(this.CurveQP), this.Vmo, nameof(this.Vmo.CurveQP));
|
this.CurveQE = this.Vmo.CurveQE;
|
this.UpdatePropStatus(nameof(this.CurveQE), this.Vmo, nameof(this.Vmo.CurveQE));
|
}
|
|
public override void UpdateVmoProperty()
|
{
|
base.UpdateVmoProperty();
|
this.Vmo.RatedQ = this.RatedQ;
|
this.Vmo.UpdatePropStatus(nameof(this.Vmo.RatedQ), this, nameof(this.RatedQ));
|
this.Vmo.RatedH = this.RatedH;
|
this.Vmo.UpdatePropStatus(nameof(this.Vmo.RatedH), this, nameof(this.RatedH));
|
this.Vmo.RatedP = this.RatedP;
|
this.Vmo.UpdatePropStatus(nameof(this.Vmo.RatedP), this, nameof(this.RatedP));
|
this.Vmo.RatedN = this.RatedN;
|
this.Vmo.UpdatePropStatus(nameof(this.Vmo.RatedN), this, nameof(this.RatedN));
|
this.Vmo.RatedHz = this.RatedHz;
|
this.Vmo.UpdatePropStatus(nameof(this.Vmo.RatedHz), this, nameof(this.RatedHz));
|
this.Vmo.SpeedRatio = this.SpeedRatio;
|
this.Vmo.UpdatePropStatus(nameof(this.Vmo.SpeedRatio), this, nameof(this.SpeedRatio));
|
this.Vmo.SpeedRatioPattern = this.SpeedRatioPattern;
|
this.Vmo.UpdatePropStatus(nameof(this.Vmo.SpeedRatioPattern), this, nameof(this.SpeedRatioPattern));
|
this.Vmo.CurveQH = this.CurveQH;
|
this.Vmo.UpdatePropStatus(nameof(this.Vmo.CurveQH), this, nameof(this.CurveQH));
|
this.Vmo.CurveQP = this.CurveQP;
|
this.Vmo.UpdatePropStatus(nameof(this.Vmo.CurveQP), this, nameof(this.CurveQP));
|
this.Vmo.CurveQE = this.CurveQE;
|
this.Vmo.UpdatePropStatus(nameof(this.Vmo.CurveQE), this, nameof(this.CurveQE));
|
}
|
|
|
/// <summary>
|
/// 更新计算属性
|
/// </summary>
|
public override void UpdateCalcuProperty(HydroCalcuResult rhs)
|
{
|
base.UpdateCalcuProperty(rhs);
|
if (rhs is HydroCalcuPumpResult calcuPumpProperty)
|
{
|
this.CalcuQ = calcuPumpProperty.CalcuQ.HasValue ? Math.Round(calcuPumpProperty.CalcuQ.Value, 1) : null;
|
this.CalcuH = calcuPumpProperty.CalcuH.HasValue ? Math.Round(calcuPumpProperty.CalcuH.Value, 2) : null;
|
this.CalcuP = calcuPumpProperty.CalcuP.HasValue ? Math.Round(calcuPumpProperty.CalcuP.Value, 1) : null;
|
this.CalcuE = calcuPumpProperty.CalcuE.HasValue ? Math.Round(calcuPumpProperty.CalcuE.Value, 1) : null;
|
}
|
}
|
|
}
|
}
|