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(); } } }