namespace HStation.WinFrmUI.PhartRelation
{
public partial class PumpPerform2dViewDlg : XtraForm
{
public PumpPerform2dViewDlg()
{
InitializeComponent();
}
///
/// 初始化数据
///
public async void SetBindingData(long pump_main_id, long phart_diagram_id, double rpm_ratio, double? action_spot_q = null)
{
var pump_main = await new BLL.AssetsPumpMain().GetByID(pump_main_id);
if (pump_main == null)
return;
var phart_diagram = await new Yw.BLL.PhartDiagram().GetByID(phart_diagram_id);
if (phart_diagram == null)
return;
var phart_graph_list = await new Yw.BLL.PhartGraph().GetByDiagramID(phart_diagram_id);
if (phart_graph_list == null || !phart_graph_list.Any())
return;
var graph_qh = phart_graph_list.Find(x => x.GraphType == (int)HStation.PhartRelation.eGraphType.PumpQH);
var graph_qe = phart_graph_list.Find(x => x.GraphType == (int)HStation.PhartRelation.eGraphType.PumpQE);
var graph_qp = phart_graph_list.Find(x => x.GraphType == (int)HStation.PhartRelation.eGraphType.PumpQP);
if (graph_qh == null)
{
return;
}
List points_qh = null, points_qe = null, points_qp = null;
Yw.Geometry.CubicSpline2d cubic_spline_qh = null, cubic_spline_qe = null, cubic_spline_qp = null;
points_qh = PhartPerformCurveHelper.GetFeatPointList((HStation.PhartRelation.eGraphType)graph_qh.GraphType, graph_qh.GeometryInfo, 12, null);
cubic_spline_qh = new Yw.Geometry.CubicSpline2d(points_qh);
cubic_spline_qh = Yw.WinFrmUI.Phart.PumpCalcHelper.CalculateSimilarQH(cubic_spline_qh, 50, rpm_ratio * 50);
if (graph_qe != null)
{
points_qe = PhartPerformCurveHelper.GetFeatPointList((HStation.PhartRelation.eGraphType)graph_qe.GraphType, graph_qe.GeometryInfo, 12, null);
cubic_spline_qe = new Yw.Geometry.CubicSpline2d(points_qe);
cubic_spline_qe = Yw.WinFrmUI.Phart.PumpCalcHelper.CalculateSimilarQE(cubic_spline_qe, 50, rpm_ratio * 50);
}
if (graph_qp != null)
{
points_qp = PhartPerformCurveHelper.GetFeatPointList((HStation.PhartRelation.eGraphType)graph_qp.GraphType, graph_qp.GeometryInfo, 12, null);
cubic_spline_qp = new Yw.Geometry.CubicSpline2d(points_qp);
cubic_spline_qp = Yw.WinFrmUI.Phart.PumpCalcHelper.CalculateSimilarQP(cubic_spline_qp, 50, rpm_ratio * 50);
}
var disp_paras = phart_diagram.DispParas;
var is_calc_disp_paras = string.IsNullOrWhiteSpace(disp_paras);
this.xtrPerform2dChart1.SetBindingData(cubic_spline_qh, cubic_spline_qe, cubic_spline_qp, disp_paras, is_calc_disp_paras);
if (action_spot_q.HasValue)
{
this.xtrPerform2dChart1.CalcDesignPointByQ(action_spot_q.Value);
}
}
///
/// 初始化数据
///
public void SetBindingData(
Yw.Pump.CurveQH qh,
Yw.Pump.CurveQE qe,
Yw.Pump.CurveQP qp)
{
if (qh == null)
{
return;
}
Yw.Geometry.CubicSpline2d cubic_spline_qh = null, cubic_spline_qe = null, cubic_spline_qp = null;
cubic_spline_qh = new Yw.Geometry.CubicSpline2d(qh.FeatCurve.GetPointList());
if (qe != null)
cubic_spline_qe = new Yw.Geometry.CubicSpline2d(qe.FeatCurve.GetPointList());
if (qp != null)
cubic_spline_qp = new Yw.Geometry.CubicSpline2d(qp.FeatCurve.GetPointList());
this.xtrPerform2dChart1.SetBindingData(cubic_spline_qh, cubic_spline_qe, cubic_spline_qp);
}
///
/// 初始化数据
///
public void SetBindingData(Yw.Geometry.CubicSpline2d cubic_spline_qh,
Yw.Geometry.CubicSpline2d cubic_spline_qe,
Yw.Geometry.CubicSpline2d cubic_spline_qp)
{
this.xtrPerform2dChart1.SetBindingData(cubic_spline_qh, cubic_spline_qe, cubic_spline_qp);
}
}
}