using System.Data;
using Yw.Pump;
namespace HStation.WinFrmUI
{
public partial class PumpChartViewCtrl : DevExpress.XtraEditors.XtraUserControl
{
public PumpChartViewCtrl()
{
InitializeComponent();
}
///
/// 绑定数据
///
public void SetBindingData(Yw.Vmo.PhartDiagramExGraphListVmo vmo, double nr)
{
var vm_list = vmo.GetPumpCurveViewMdoelList();
var vm_defult = vm_list.OrderBy(x => x.Hz).LastOrDefault();
var vm_ee_list = vmo.GetCurveEqualEViewMdoelList();
var vm = new Yw.WinFrmUI.Phart.PumpChartViewModel();
vm.Id = "";
vm.ColorQH = Color.Blue;
vm.ColorQE = Color.Green;
vm.ColorQP = Color.Red;
vm.CurveQHName = "QE";
vm.CurveQPName = "QP";
vm.CurveQH = vm_defult.CurveQH.FeatCurve.GetPointList(50);
vm.CurveQE = vm_defult.CurveQE?.FeatCurve.GetPointList(50);
vm.CurveQP = vm_defult.CurveQP?.FeatCurve.GetPointList(50);
vm.PointListQH = vm.CurveQH;
vm.PointListQE = vm.CurveQE;
vm.PointListQP = vm.CurveQP;
vm.Equip = null;
vm.VariableSpeedList = new List();
vm.EqualEffList = new List();
vm.EqualPowerList = new List();
for (int eff = 30; eff < 90; eff += 1)
{
var ve = new Yw.WinFrmUI.Phart.PumpChartEqualEffViewModel();
//ve.Id = rhs.Id;
ve.CurveName = $"{eff}";
ve.Color = Color.ForestGreen;
ve.CurveEqualEff = new List();
for (int hz = 30; hz <= 50; hz += 5)
{
var qe = vm_defult.CurveQE.ToNewByN(50, hz);
var q_array = qe.FeatCurve.GetPointsX(eff);
if (q_array == null || !q_array.Any())
{
continue;
}
var qh = vm_defult.CurveQH.ToNewByN(50, hz);
var flow = q_array.FirstOrDefault();
var head = qh.FeatCurve.GetPointY(flow);
ve.CurveEqualEff.Add(new Yw.Geometry.Point2d(flow, head));
}
if (!ve.CurveEqualEff.Any())
{
continue;
}
vm.EqualEffList.Add(ve);
}
for (int hz = 30; hz < 50; hz += 5)
{
var tN = nr * hz / 50;
var vs = new Yw.WinFrmUI.Phart.PumpChartVariableSpeedViewModel();
vs.CurveQHName = $"{tN}";
vs.CurveQPName = $"{tN}";
vs.CurveQH = vm_defult.CurveQH.GetPointListByN(nr, tN, 50);
vs.CurveQE = vm_defult.CurveQE.GetPointListByN(nr, tN, 50);
vs.CurveQP = vm_defult.CurveQP.GetPointListByN(nr, tN, 50);
vs.Hz = hz;
vs.N = tN;
vm.VariableSpeedList.Add(vs);
}
this.pumpChart1.SetChart(vm);
}
///
/// 获取
///
public Yw.Vmo.PhartDiagramExGraphListVmo Get()
{
return new Yw.Vmo.PhartDiagramExGraphListVmo();
}
}
}