namespace HStation.Service
{
///
/// 特性曲线辅助类
///
public class PerformCurveHelper
{
///
/// 获取性能点列表
///
public static List GetFeatPointList(eGraphType graphType, string geometryInfo, int pointNumber = 12, double minSpace = 0.0001)
{
if (string.IsNullOrEmpty(geometryInfo))
{
return default;
}
List pts = null;
switch (graphType)
{
case eGraphType.QH:
{
var curveQH = Yw.Pump.CurveQHHelper.ToModel(geometryInfo);
if (curveQH != null)
{
pts = curveQH.FeatCurve.GetPointList(pointNumber, minSpace);
}
}
break;
case eGraphType.QP:
{
var curveQP = Yw.Pump.CurveQPHelper.ToModel(geometryInfo);
if (curveQP != null)
{
pts = curveQP.FeatCurve.GetPointList(pointNumber, minSpace);
}
}
break;
case eGraphType.QE:
{
var curveQE = Yw.Pump.CurveQEHelper.ToModel(geometryInfo);
if (curveQE != null)
{
pts = curveQE.FeatCurve.GetPointList(pointNumber, minSpace);
}
}
break;
default: break;
}
return pts;
}
///
/// to 存储字符串
///
public static string ToDbString(eGraphType graphType, Yw.Pump.eFeatType featType, List pts)
{
var dbString = string.Empty;
if (pts == null || pts.Count < 1)
{
return dbString;
}
Yw.Pump.IFeatCurve featCurve = null;
switch (featType)
{
case Yw.Pump.eFeatType.Polynomial:
{
featCurve = new Yw.Pump.PolynomialCurve(pts);
}
break;
case Yw.Pump.eFeatType.Cubic:
{
featCurve = new Yw.Pump.CubicCurve(pts);
}
break;
default: break;
}
if (featCurve == null || featCurve.IsInvalid())
{
return dbString;
}
switch (graphType)
{
case eGraphType.QH:
{
var curveQH = new Yw.Pump.CurveQH(featType, featCurve);
dbString = curveQH.ToDbString();
}
break;
case eGraphType.QP:
{
var curveQP = new Yw.Pump.CurveQP(featType, featCurve);
dbString = curveQP.ToDbString();
}
break;
case eGraphType.QE:
{
var curveQE = new Yw.Pump.CurveQE(featType, featCurve);
dbString = curveQE.ToDbString();
}
break;
default: break;
}
return dbString;
}
}
}