namespace HStation.WinFrmUI
|
{
|
public partial class PumpChartViewCtrl : DevExpress.XtraEditors.XtraUserControl
|
{
|
public PumpChartViewCtrl()
|
{
|
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)
|
{
|
_vmo = vmo;
|
if (vmo == null)
|
{
|
ClearBindingData();
|
return;
|
}
|
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_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_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;
|
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();
|
// //ve.Id = rhs.Id;
|
// ve.CurveName = $"{eff}";
|
// ve.Color = Color.ForestGreen;
|
// ve.CurveEqualEff = new List<Yw.Geometry.Point2d>();
|
// 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.SetBindingData(vm);
|
}
|
|
/// <summary>
|
/// 清空绑定数据
|
/// </summary>
|
public void ClearBindingData()
|
{
|
this.pumpChart1.ClearBindingData();
|
}
|
|
/// <summary>
|
/// 获取
|
/// </summary>
|
public Yw.Vmo.PhartDiagramExGraphListVmo Get()
|
{
|
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)
|
{
|
|
}
|
}
|
}
|