duheng
2024-12-24 6936ebf1dfbd0025d3e86ae7dde316b6a6e43b9b
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/01-view/PumpChartViewCtrl.cs
@@ -1,6 +1,4 @@
using System.Data;
namespace HStation.WinFrmUI
namespace HStation.WinFrmUI
{
    public partial class PumpChartViewCtrl : DevExpress.XtraEditors.XtraUserControl
    {
@@ -9,38 +7,80 @@
            InitializeComponent();
        }
        private Yw.Vmo.PhartDiagramExGraphListVmo _vmo = null;
        private Yw.WinFrmUI.Phart.PumpCurveViewModel _vm = null;
        /// <summary>
        /// 数据变更事件
        /// </summary>
        public event Action<Yw.Vmo.PhartDiagramExGraphListVmo> DataChangedEvent;
        /// <summary>
        /// 绑定数据
        /// </summary>
        public void SetBindingData(Yw.Vmo.PhartDiagramExGraphListVmo vmo, double nr)
        {
            var vm_list = vmo.GetPumpCurveViewMdoelList();
            if (vm_list==null||!vm_list.Any())
            _vmo = vmo;
            if (vmo == null)
            {
                this.pumpChart1.Clear();
                ClearBindingData();
                return;
            }
            var vm_defult = vm_list.OrderBy(x => x.Hz).LastOrDefault();
            var vm_ee_list = vmo.GetCurveEqualEViewMdoelList();
            var vm_list = vmo.GetPumpCurveViewMdoelList();
            if (vm_list == null || !vm_list.Any())
            {
                ClearBindingData();
                return;
            }
            var vm_def = vmo.GetDefaultPumpCurveViewMdoel();
            if (vm_def == null)
                return;
            var vm = new Yw.WinFrmUI.Phart.PumpViewChartViewModel();
            var vm_v_speed_list = vmo.GetVariableSpeedPumpCurveViewMdoelList();
            var vm_e_eff_list = vmo.GetCurveEqualEViewMdoelList();
            var vm = new Yw.WinFrmUI.Phart.PumpCurveViewModel();
            vm.Id = "";
            vm.ColorQH = Color.Blue;
            vm.ColorQE = Color.Green;
            vm.ColorQP = Color.Red;
            vm.CurveQHName = "QH";
            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.CurveQH = vm_def.CurveQH.FeatCurve.GetPointList(50);
            vm.CurveQE = vm_def.CurveQE?.FeatCurve.GetPointList(50);
            vm.CurveQP = vm_def.CurveQP?.FeatCurve.GetPointList(50);
            vm.PointListQH = vm.CurveQH;
            vm.PointListQE = vm.CurveQE;
            vm.PointListQP = vm.CurveQP;
            vm.Equip = null;
            //vm.VariableSpeedList = new List<Yw.WinFrmUI.Phart.PumpChartVariableSpeedViewModel>();
            //vm.EqualEffList = new List<Yw.WinFrmUI.Phart.PumpChartEqualEffViewModel>();
            //vm.EqualPowerList = new List<Yw.WinFrmUI.Phart.PumpChartEqualPowerViewModel>();
            if (vm_e_eff_list == null || !vm_e_eff_list.Any())
            {
                var curve_qe = vm_def.CurveQE.FeatCurve;
                if (curve_qe != null && curve_qe.IsValid())
                {
                    var max_eff = curve_qe.GetPointList().Max(x => x.Y);
                    var eff_list = EqualParaCurveEListHelper.CalcEqualParaCurveE(vm_def, 50, 30, max_eff - 1);
                    if (eff_list != null && eff_list.Any())
                    {
                        vm.EqualEffList = new List<Yw.WinFrmUI.Phart.PumpCurveEqualEffViewModel>();
                        foreach (var item in eff_list)
                        {
                            var def_pt_list = item.DefinePoints;
                            var eff_vm = new Yw.WinFrmUI.Phart.PumpCurveEqualEffViewModel();
                            eff_vm.Id = Guid.NewGuid().ToString();
                            eff_vm.CurveName = $"{item.Eff:N1}";
                            eff_vm.Color = Color.DarkGreen;
                            eff_vm.CurveEqualEff = item.DefinePoints;
                            eff_vm.Tension = item.Tension;
                            eff_vm.IsClosed = item.IsClosed;
                            vm.EqualEffList.Add(eff_vm);
                        }
                    }
                }
            }
            //vm.VariableSpeedList = new List<Yw.WinFrmUI.Phart.PumpChartVariableSpeedViewModel>();
            //vm.EqualPowerList = new List<Yw.WinFrmUI.Phart.PumpChartEqualPowerViewModel>();
            //for (int eff = 30; eff < 90; eff += 1)
            //{
            //    var ve = new Yw.WinFrmUI.Phart.PumpChartEqualEffViewModel();
@@ -85,13 +125,13 @@
            this.pumpChart1.SetBindingData(vm);
        }
        /// <summary>
        /// 清空绑定数据
        /// </summary>
        public void ClearBindingData()
        {
            this.pumpChart1.Clear();
            this.pumpChart1.ClearBindingData();
        }
        /// <summary>
@@ -102,5 +142,19 @@
            return new Yw.Vmo.PhartDiagramExGraphListVmo();
        }
        private void barCekEffVisible_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
        }
        private void barCekPowerVisible_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
        }
        private void barCekSplitPanel_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
        }
    }
}