using DevExpress.XtraCharts;
|
using System.Data;
|
using Yw.WinFrmUI;
|
using Yw;
|
|
namespace IBox.WinFrmUI
|
{
|
public partial class IBoxFormScheme : DocumentPage
|
{
|
private string startCode = "[&start&]";
|
private string endCode = "[&end&]";
|
private string paramCode = "[¶m&]";
|
private string getcalvalueCode = "getcalvalue";
|
private string cleardataCode = "cleardata";
|
public IBoxFormScheme(SimuViewModel simuCalcViewModel)
|
{
|
_currentBuild = simuCalcViewModel.CurrentBuild;
|
|
_facilities = simuCalcViewModel.Facilities;
|
|
this.PageTitle.Caption = "调度方案";
|
InitializeComponent();
|
//InitialChart();
|
|
InitialDataSource();
|
|
|
|
//this.chartControl.CrosshairEnabled = DefaultBoolean.True;
|
//this.chartControl.RuntimeHitTesting = true;
|
//this.chartControl.MouseDown += this.chartControl_MouseDown;
|
//this.chartControl.AnimationStartMode = ChartAnimationMode.OnLoad;
|
this.gridView1.SetNormalView();
|
this.gridView3.SetNormalView();
|
this.gridView3.OptionsDetail.EnableMasterViewMode = false;
|
this.gridView1.OptionsView.ShowIndicator = false;
|
|
|
|
|
}
|
private List<List<string>> _pumpCombine = null;//泵调度组合
|
public event EventHandler<string> SendData;
|
private List<SimuPumpViewModel> _simuPumps = null;//调度泵列表
|
private Model.Facilities _facilities = null;//设施
|
private double _sysMaxQ, _constantP;//系统最大流量/恒压值
|
private Build _currentBuild = null;//当前建筑物
|
#region Chart Variable
|
|
private XYDiagram _xyDiagram = null;
|
private GanttDiagram _ganttDiagram = null;
|
|
private XYDiagramPane _paneP, _panePE, _paneRun;
|
|
private AxisX _axisX;
|
private AxisY _axisYP;
|
|
private SecondaryAxisY _axisYQ, _axisYPower, _axisYE, _axisYRun;
|
|
private void r_Click(object sender, EventArgs e)
|
{
|
|
}
|
|
private void barButtonItem1_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
barButtonItem1.Enabled = false;
|
//barBtnCalc.Enabled = true;
|
}
|
|
private void barBtnCalc_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
barButtonItem1.Enabled = true;
|
//barBtnCalc.Enabled = false;
|
}
|
|
private void EboxFormScheme_Load(object sender, EventArgs e)
|
{
|
this.barEditItemStartDate.EditValue = DateTime.Now.ToString("yyyy-MM-dd");
|
this.barEditItemEnd.EditValue = DateTime.Now.ToString("yyyy-MM-dd");
|
var m = new GetCalcValueModel()
|
{
|
StartDate = DateTime.Parse(this.barEditItemStartDate.EditValue.ToString()),
|
EndDate = DateTime.Parse(this.barEditItemEnd.EditValue.ToString()),
|
};
|
Thread.Sleep(500);
|
|
SendText(startCode + getcalvalueCode + paramCode + JsonHelper.Object2Json(m) + endCode);
|
|
}
|
|
private void barButtonItem1_ItemClick_1(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
var m = new GetCalcValueModel()
|
{
|
StartDate = DateTime.Parse(barEditItemStartDate.EditValue.ToString()),
|
EndDate = DateTime.Parse(barEditItemEnd.EditValue.ToString()),
|
};
|
|
SendText(startCode + getcalvalueCode + paramCode + JsonHelper.Object2Json(m) + endCode);
|
}
|
|
private void SendText(string content)
|
{
|
WaitFrmHelper.ShowWaitForm();
|
//BluetoothHelper.GetInstance().SendData(content);
|
SendData?.Invoke(null, content);
|
}
|
private ConstantLine _lineTime, _lineP, _ganttLine;
|
|
private Series _seriesUsageQ, _seriesRangeAreaQ,
|
_seriesRangeArea, _seriesAvgP, _seriesCalcP, _seriesRealP,
|
_seriesPower, _seriesE;
|
|
private void barButtonItem2_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
SendText(startCode + cleardataCode + paramCode + endCode);
|
Thread.Sleep(100);
|
var m = new GetCalcValueModel()
|
{
|
StartDate = DateTime.Parse(this.barEditItemStartDate.EditValue.ToString()),
|
EndDate = DateTime.Parse(this.barEditItemEnd.EditValue.ToString()),
|
};
|
SendText(startCode + getcalvalueCode + paramCode + JsonHelper.Object2Json(m) + endCode);
|
}
|
|
private void barEditItemStartDate_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
|
}
|
|
private void gridView3_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e)
|
{
|
if (e.Column.FieldName == "ControlType")
|
{
|
var celValue = e.Value.ToString();
|
var celNewValue = "设定压力";
|
switch (celValue)
|
{
|
case "2":
|
celNewValue = "开泵方案";
|
break;
|
}
|
|
e.DisplayText = celNewValue;
|
}
|
}
|
|
private void gridView3_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
|
{
|
var cv = this.gridView3.GetFocusedRow() as CalcValueViewModel;
|
|
//var cv = SimuCalc(v.TargetFlow, v.TargetHead, double.Parse(_facilities.ConstantP.ToString()), _facilities.WaterPressure, v.Time);
|
if (cv != null)
|
{
|
SetCurveChart(cv.TotalFlow, cv.TargetHead, cv.TotalPower, cv.TotalEff, cv.Pumps);
|
SetPanelInfo(cv);
|
SetRealDataView(cv);
|
}
|
}
|
|
private void SetRealDataView(CalcValueViewModel calcValueViewModel)
|
{
|
var dataList = new List<DataGridMonitorViewModel>();
|
if (!string.IsNullOrEmpty(calcValueViewModel.RealDataJson))
|
{
|
var realList = JsonHelper.Json2Object<List<MonitorRecord>>(calcValueViewModel.RealDataJson);
|
foreach (var item in _stations)
|
{
|
foreach (var ml in item.MonitorList)
|
{
|
var dt = realList.FirstOrDefault(x => x.SignalID == ml.SignalID);
|
dataList.Add(new DataGridMonitorViewModel()
|
{
|
DataTime = dt == null ? "-" : dt.DataTime.ToString("yyyy-MM-dd HH:mm:ss"),
|
DataValue = dt == null ? "-" : dt.DataValue,
|
GroupID = item.ID,
|
GroupName = item.Name,
|
MonitorName = ml.Name,
|
SignalID = ml.SignalID,
|
UnitName = ml.UnitName,
|
DataStatus = ml.DataStatus,
|
});
|
}
|
}
|
}
|
dataGridMonitorViewModelBindingSource.DataSource = dataList;
|
this.gridView2.RefreshData();
|
}
|
|
private bool InterValueBuild(Build build, DateTime dt, out double usageQ, out double avgP)
|
{
|
usageQ = avgP = 0;
|
|
var timeOA = DateTime.Parse("1900-1-1").Add(dt.TimeOfDay).ToOADate();
|
for (int i = 0; i < build.用水趋势曲线.Data.Count - 1; i++)
|
{
|
if (build.用水趋势曲线.Data[i].X <= timeOA && timeOA <= build.用水趋势曲线.Data[i + 1].X)//找到
|
{
|
usageQ = (float)(build.用水趋势曲线.Data[i].Y + (build.用水趋势曲线.Data[i + 1].Y - build.用水趋势曲线.Data[i].Y) * (timeOA - build.用水趋势曲线.Data[i].X) / (build.用水趋势曲线.Data[i + 1].X - build.用水趋势曲线.Data[i].X));
|
break;
|
}
|
}
|
|
if (usageQ <= 0)
|
{
|
return false;
|
}
|
//maxP = build.流量压降上限.Evaluate(usageQ);
|
//minP = build.流量压降下限.Evaluate(usageQ);
|
avgP = build.流量压降曲线.Evaluate(usageQ);
|
return true;
|
}
|
private CalcValueViewModel SimuCalc
|
(double flow, double press, double constantP, double endP, DateTime dateTime)
|
{
|
_pumpCombine = new List<List<string>>();
|
var viewModel = _facilities;
|
if (viewModel != null)
|
{
|
_simuPumps = new List<SimuPumpViewModel>();
|
if (!long.TryParse(_facilities.CompletePlant, out long kitId))
|
return null;
|
var kit = new BLL.Kit().GetByID(kitId);
|
if (kit == null)
|
return null;
|
if (kit.UseCount < 1)
|
return null;
|
var equipmentList = new BLL.Equipment().GetByKitIDAndCatalog(kitId, ISupply.Equipment.Pump);
|
if (equipmentList == null || !equipmentList.Any())
|
return null;
|
if (kit.UseCount > equipmentList.Count)
|
return null;
|
var useList = equipmentList.Take(kit.UseCount);
|
|
var bllEChartMapping = new BLL.EquipmentEChartMapping();
|
var bllEChart = new BLL.EChart();
|
foreach (var item in useList)
|
{
|
var mapping = bllEChartMapping.GetWorkingByEquipmentID(item.ID);
|
if (mapping == null)
|
continue;
|
var chart = bllEChartMapping.GetExByID(mapping.ID);
|
if (chart == null)
|
continue;
|
var curveInfo = chart.CurveInfo;
|
|
var pump = Model.Pump.ToModel(item.RatedParas);
|
var simuPumpVm = new SimuPumpViewModel();
|
simuPumpVm.ID = item.ID;
|
simuPumpVm.Name = item.Name;
|
simuPumpVm.Code = item.Name;
|
simuPumpVm.Qr = pump.Qr;
|
simuPumpVm.Hr = pump.Hr;
|
simuPumpVm.Nr = pump.Nr;
|
simuPumpVm.Pr = pump.Pr;
|
simuPumpVm.Er = pump.Er;
|
simuPumpVm.Ic = pump.Ic;
|
simuPumpVm.Oc = pump.Oc;
|
simuPumpVm.IOd = pump.IOd;
|
simuPumpVm.Ie = pump.Ie;
|
simuPumpVm.Oe = pump.Oe;
|
simuPumpVm.IsBp = pump.IsBp;
|
simuPumpVm.IsSxp = pump.IsSxp;
|
simuPumpVm.CurveQH = curveInfo.CurveQH;
|
simuPumpVm.CurveQE = curveInfo.CurveQE;
|
simuPumpVm.CurveQP = curveInfo.CurveQP;
|
_simuPumps.Add(simuPumpVm);
|
}
|
var pumps = _simuPumps.Select(x => x.Name + x.ID).ToList();
|
_pumpCombine = new List<List<string>>() { pumps };
|
}
|
|
var complexRequestPras = new RequestParasComplex()
|
{
|
StationID = 1,
|
PressValueType = RequestParasComplex.ePressValueType.扬程,
|
SchemeSortType = eAnaSchemeSortType.功率,
|
InletPipePara = new List<InletPipePara>() { new InletPipePara(0) }
|
};
|
var calcValues = new List<CalcValueViewModel>();
|
complexRequestPras.OutletPipePara = new List<OutletPipePara>();
|
complexRequestPras.OutletPipePara.Add(new OutletPipePara()
|
{
|
TargetFlow = flow,
|
TargetPress = press
|
});
|
|
var calcHelper = new Calculator_OptAna_General();
|
//if (currentTime.Hour >= 12 && currentTime.Hour % 12 == 0)
|
// combinIndex = 1;
|
var combin = _pumpCombine[0];
|
var combinRunStatus = new MachineRunPara();
|
combinRunStatus.MachineRunFilter = new List<MachineRunFilter>();
|
for (int j = 0; j < _simuPumps.Count; j++)
|
{
|
var pump = _simuPumps[j];
|
//var runStatus = combin.Exists(x => x == pump.Name) ? 1 : 0;
|
var machineRunFilter = new MachineRunFilter()
|
{
|
MachineID = pump.ID,
|
RunStatus = 1,
|
Percentage = 1,
|
IsFrequency = true
|
};
|
combinRunStatus.MachineRunFilter.Add(machineRunFilter);
|
//combinRunStatus.RunPumpCount = 2;
|
}
|
double energy_calc = 0;
|
double carbon_emission = 0;
|
var calcValue = new CalcValueViewModel();
|
//calcValue.Time = currentTime;
|
calcValue.TargetFlow = flow;
|
calcValue.TargetHead = press;
|
calcValue.Time = dateTime;
|
calcValues.Add(calcValue);
|
|
//调度
|
var schemes = calcHelper.CalcSchemes(_simuPumps, complexRequestPras, null, combinRunStatus, out string errorInfo);
|
if (schemes == null || !schemes.Any())
|
{
|
calcValue.CalcSuccess = false;
|
return calcValue;
|
//continue;
|
}
|
var scheme = schemes[0];
|
calcValue.CalcSuccess = true;
|
calcValue.TotalPower = scheme.TotalWrkP;
|
calcValue.TotalEff = scheme.TotalWrkE;
|
calcValue.TotalHead = scheme.TotalWrkH;
|
calcValue.TotalFlow = scheme.TotalWrkQ;
|
calcValue.CalcHead = scheme.TotalWrkH - press + endP;
|
if (scheme.Items != null && scheme.Items.Any())
|
{
|
calcValue.Pumps = new List<PumpViewModel>();
|
foreach (var item in scheme.Items)
|
{
|
var pump = new PumpViewModel();
|
pump.ID = item.PumpID;
|
pump.Name = item.MachineName;
|
pump.HZ = item.Frequence;
|
pump.Power = item.WorkPointP;
|
pump.Eff = item.WorkPointE;
|
pump.Head = item.WorkPointH;
|
pump.Flow = item.WorkPointQ;
|
pump.CurveInfoQH = item.CurveInfoQH;
|
pump.CurveInfoQP = item.CurveInfoQP;
|
calcValue.Pumps.Add(pump);
|
}
|
}
|
|
return calcValue;
|
}
|
|
private void gridView3_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
|
{
|
if (e.Column.FieldName == "Status")
|
{
|
var celValue = e.CellValue.ToString();
|
switch (celValue)
|
{
|
case "失败":
|
e.Appearance.ForeColor = Color.Blue;
|
break;
|
default:
|
e.Appearance.ForeColor = Color.Green;
|
break;
|
}
|
}
|
}
|
#endregion
|
private List<StationMonitorListGroupMobileDto> _stations;
|
/// <summary>
|
/// 处理实时数据
|
/// </summary>
|
/// <param name="records"></param>
|
public void BindData(List<CalcValue> records, List<StationMonitorListGroupMobileDto> stations, bool isBlue = true)
|
{
|
_stations = stations;
|
|
if (isBlue)
|
{
|
this.Invoke(new Action(() =>
|
{
|
this.calcValueViewModelBindingSource.DataSource = null;
|
this.gridView3.RefreshData();
|
|
var ls = new List<CalcValueViewModel>();
|
foreach (var item in records)
|
{
|
if (!string.IsNullOrEmpty(item.JsonBody))
|
{
|
var m = JsonHelper.Json2Object<CalcValueViewModel>(item.JsonBody);
|
m.RealDataJson = item.RealDataJson;
|
ls.Add(m);
|
}
|
}
|
_calcValues = ls;
|
this.calcValueViewModelBindingSource.DataSource = _calcValues;
|
this.gridView3.RefreshData();
|
|
|
//var list = records.Select(c => c.JsonBody);
|
//if (list.Any())
|
//{
|
// var str = string.Join(",", list);
|
// str = "[" + str + "]";
|
// _calcValues = JsonHelper.Json2Object<List<CalcValueViewModel>>(str);
|
|
// this.calcValueViewModelBindingSource.DataSource = _calcValues;
|
// this.gridView3.RefreshData();
|
|
|
|
|
//if (_calcValues.Any())
|
//{
|
// var _takeIndex = 0;
|
// _calcValues.ForEach(c =>
|
// {
|
// var calcValue = c;
|
// if (calcValue.CalcSuccess)
|
// {
|
// CalcValueViewModel lastCalcValue = null;
|
// if (_takeIndex > 0)
|
// {
|
// lastCalcValue = _calcValues[_takeIndex - 1];
|
// }
|
|
// var time = calcValue.Time;
|
// var power = calcValue.TotalPower;
|
// var eff = calcValue.TotalEff;
|
// var calcP = calcValue.CalcHead;
|
// var avgP = calcValue.TargetHead;
|
// this.chartControl.BeginInit();
|
|
// _seriesRangeArea.Points.Add(new SeriesPoint(time, new double[] { avgP, double.Parse(_facilities.ConstantP.ToString()) }));
|
// _seriesAvgP.Points.Add(new SeriesPoint(time, avgP));
|
// _seriesCalcP.Points.Add(new SeriesPoint(time, calcP));
|
|
// _seriesPower.Points.Add(new SeriesPoint(time, power));
|
// _seriesE.Points.Add(new SeriesPoint(time, eff));
|
// for (int i = 1; i < _simuPumps.Count + 1; i++)
|
// {
|
// var pump = _simuPumps[i - 1];
|
// var series = this.chartControl.GetSeriesByName(pump.ID.ToString());
|
// if (series == null)
|
// continue;
|
// var run = calcValue.Pumps.Exists(x => x.ID == pump.ID);
|
// if (!run && lastCalcValue != null && lastCalcValue.Pumps != null)
|
// {
|
// run = lastCalcValue.Pumps.Exists(x => x.ID == pump.ID);
|
// }
|
// var seriesPoint = new SeriesPoint(time, i);
|
// seriesPoint.IsEmpty = !run;
|
// seriesPoint.Color = !run ? Color.Gray : Color.RoyalBlue;
|
// series.Points.Add(seriesPoint);
|
// }
|
// _lineTime.AxisValue = time.ToString("yyyy-MM-dd HH:mm:ss");
|
// _lineTime.Title.Text = time.ToString("yyyy-MM-dd HH:mm:ss");
|
// this.chartControl.EndInit();
|
|
// SetPanelInfo(calcValue);
|
// SetCurveChart(calcValue.TotalFlow, calcValue.TargetHead, calcValue.TotalPower, calcValue.TotalEff, calcValue.Pumps);
|
// SetEnergyInfo(calcValue);
|
// }
|
// _takeIndex++;
|
// });
|
//}
|
|
//}
|
}));
|
}
|
else
|
{
|
this.calcValueViewModelBindingSource.DataSource = null;
|
this.gridView3.RefreshData();
|
//var list = records.Select(c => c.JsonBody);
|
//if (list.Any())
|
//{
|
// var str = string.Join(",", list);
|
// str = "[" + str + "]";
|
// _calcValues = JsonHelper.Json2Object<List<CalcValueViewModel>>(str);
|
// //_calcValues = records;
|
// this.calcValueViewModelBindingSource.DataSource = _calcValues;
|
// this.gridView3.RefreshData();
|
//}
|
var ls = new List<CalcValueViewModel>();
|
foreach (var item in records)
|
{
|
if (!string.IsNullOrEmpty(item.JsonBody))
|
{
|
var m = JsonHelper.Json2Object<CalcValueViewModel>(item.JsonBody);
|
m.RealDataJson = item.RealDataJson;
|
m.ControlType= item.ControlType;
|
ls.Add(m);
|
}
|
|
}
|
_calcValues = ls;
|
this.calcValueViewModelBindingSource.DataSource = _calcValues;
|
this.gridView3.RefreshData();
|
}
|
WaitFrmHelper.HideWaitForm();
|
}
|
/// <summary>
|
/// 初始化数据
|
/// </summary>
|
public void InitialDataSource()
|
{
|
//_lineP.AxisValue =_facilities.ConstantP;
|
if (_facilities == null)
|
return;
|
|
_simuPumps = new List<SimuPumpViewModel>();
|
if (!long.TryParse(_facilities.CompletePlant, out long kitId))
|
return;
|
var kit = new BLL.Kit().GetByID(kitId);
|
if (kit == null)
|
return;
|
if (kit.UseCount < 1)
|
return;
|
var equipmentList = new BLL.Equipment().GetByKitIDAndCatalog(kitId, ISupply.Equipment.Pump);
|
if (equipmentList == null || !equipmentList.Any())
|
return;
|
if (kit.UseCount > equipmentList.Count)
|
return;
|
var useList = equipmentList.Take(kit.UseCount);
|
var bllEChartMapping = new BLL.EquipmentEChartMapping();
|
var bllEChart = new BLL.EChart();
|
foreach (var item in useList)
|
{
|
var mapping = bllEChartMapping.GetWorkingByEquipmentID(item.ID);
|
if (mapping == null)
|
continue;
|
var chart = bllEChartMapping.GetExByID(mapping.ID);
|
if (chart == null)
|
continue;
|
var curveInfo = chart.CurveInfo;
|
|
var pump = Model.Pump.ToModel(item.RatedParas);
|
var simuPumpVm = new SimuPumpViewModel();
|
simuPumpVm.ID = item.ID;
|
simuPumpVm.Name = item.Name;
|
simuPumpVm.Code = item.NO;
|
simuPumpVm.Qr = pump.Qr;
|
simuPumpVm.Hr = pump.Hr;
|
simuPumpVm.Nr = pump.Nr;
|
simuPumpVm.Pr = pump.Pr;
|
simuPumpVm.Er = pump.Er;
|
simuPumpVm.Ic = pump.Ic;
|
simuPumpVm.Oc = pump.Oc;
|
simuPumpVm.IOd = pump.IOd;
|
simuPumpVm.Ie = pump.Ie;
|
simuPumpVm.Oe = pump.Oe;
|
simuPumpVm.IsBp = pump.IsBp;
|
simuPumpVm.IsSxp = pump.IsSxp;
|
simuPumpVm.CurveQH = curveInfo.CurveQH;
|
simuPumpVm.CurveQE = curveInfo.CurveQE;
|
simuPumpVm.CurveQP = curveInfo.CurveQP;
|
_simuPumps.Add(simuPumpVm);
|
}
|
|
|
if (!_simuPumps.Any())
|
return;
|
//InitialPumpRunSeries(_simuPumps);
|
var pumps = _simuPumps.Select(x => x.Name + x.ID).ToList();
|
_pumpCombine = new List<List<string>>() { pumps };
|
}
|
|
|
/// <summary>
|
/// 初始化图表
|
/// </summary>
|
|
#region SetView
|
|
|
private List<Color> ColorArray = new List<Color>()
|
{ Color.Red,
|
Color.Blue, Color.Green, Color.DodgerBlue,
|
Color.Fuchsia,Color.MidnightBlue,Color.Maroon,
|
Color.Aquamarine, Color.Bisque ,Color.BurlyWood };
|
/// <summary>
|
/// 设置图表信息
|
/// </summary>
|
public void SetCurveChart(double workQ, double workH, double workP, double workE, List<PumpViewModel> currentPumps)
|
{
|
this.multiCurveExpressChart1.DeleteCurve();
|
if (currentPumps == null || !currentPumps.Any())
|
return;
|
|
if (currentPumps.Count == 1)
|
{
|
var currentPump = currentPumps[0];
|
ISupply.Curve.CurveExpress QH = currentPump.CurveInfoQH, QP = currentPump.CurveInfoQP;
|
|
var QE = Curve.PumpCalculateHelper.CalculateE(QH, QP);
|
this.multiCurveExpressChart1.AddCurve(-1, currentPump.Name,
|
currentPump.Flow, currentPump.Head, currentPump.Power, currentPump.Eff, currentPump.HZ,
|
QH, QE, QP, System.Drawing.Color.Black);
|
|
this.multiCurveExpressChart1.CalcWorkPointByQ(workQ);
|
return;
|
}
|
|
var theConnectCurve = new Curve.ParallelConnectionHelper();
|
for (int i = 0; i < currentPumps.Count; i++)
|
{
|
var currentPump = currentPumps[i];
|
var QH = currentPump.CurveInfoQH;
|
var QP = currentPump.CurveInfoQP;
|
var QE = Curve.PumpCalculateHelper.CalculateE(QH, QP);
|
|
|
theConnectCurve.AddCurve(QH, QP);
|
this.multiCurveExpressChart1.AddCurve(currentPump.ID,
|
currentPump.Name,
|
currentPump.Flow, currentPump.Head, currentPump.Power, currentPump.Eff,
|
currentPump.HZ,
|
QH,
|
QE,
|
QP,
|
ColorArray[i]);
|
}
|
|
|
var bol = theConnectCurve.CalculateParallel(out List<ISupply.Curve.CurvePoint> ConnectCurveQH,
|
out List<ISupply.Curve.CurvePoint> ConnectCurveQE,
|
out List<ISupply.Curve.CurvePoint> ConnectCurveQP);
|
if (!bol)
|
{
|
return;
|
}
|
|
var curveExpressQH = ISupply.Curve.FitHelper.BuildCurveExpress(ConnectCurveQH);
|
var curveExpressQE = ISupply.Curve.FitHelper.BuildCurveExpress(ConnectCurveQE);
|
var curveExpressQP = ISupply.Curve.FitHelper.BuildCurveExpress(ConnectCurveQP);
|
this.multiCurveExpressChart1.AddCurve(-1, "并联曲线",
|
workQ, workH, workP, workE,
|
null,
|
curveExpressQH, curveExpressQE, curveExpressQP, System.Drawing.Color.Black);
|
// this.multiCurveExpressChart1.LineVisible = true;
|
this.multiCurveExpressChart1.CalcWorkPointByQ(workQ);
|
}
|
|
/// <summary>
|
/// 设置面板信息
|
/// </summary>
|
private void SetPanelInfo(CalcValueViewModel calcValue)
|
{
|
this.gridControl1.DataSource = calcValue.Pumps;
|
this.gridControl1.RefreshDataSource();
|
|
this.txtTime.EditValue = calcValue.Time.ToString("T");
|
this.txtPower.EditValue = Math.Round(calcValue.TotalPower, 2);
|
this.txtPumpP.EditValue = Math.Round(calcValue.TotalHead, 2);
|
|
this.txtTerminalP.EditValue = Math.Round(calcValue.CalcHead, 2);
|
}
|
|
private void SetEnergyInfo(CalcValueViewModel calcValue)
|
{
|
//this.txtTotalEnergy.EditValue = calcValue.TotalEnergy;
|
//this.txtEnergyEfficient.EditValue = calcValue.EnergyEfficient;
|
//this.txtCarbonEmission.EditValue = Math.Round(calcValue.CarbonEmission, 4);
|
//this.txtEnergyEfficiencyRatio.EditValue = calcValue.EnergyEfficiencyRatio;
|
|
}
|
private List<CalcValueViewModel> _calcValues = null;//计算值
|
//图表 鼠标点击事件
|
private void chartControl_MouseDown(object sender, MouseEventArgs e)
|
{
|
////return;
|
//if (e.Button != MouseButtons.Left)
|
// return;
|
//var hitInfo = this.chartControl.CalcHitInfo(e.Location);
|
//if (hitInfo.InChart)
|
//{
|
// var diagramCoordinates = _xyDiagram.PointToDiagram(e.Location);
|
// var axisValue = diagramCoordinates.GetAxisValue(_axisX);
|
// if (axisValue == null)
|
// return;
|
// var dt = axisValue.DateTimeValue;
|
// //if (dt > (DateTime)_lineTime.AxisValue)
|
// // return;
|
// var cv = _calcValues?.Find(x => x.Time == dt);
|
// //if (cv == null)
|
// //{
|
// // var bol = InterValueBuild(_currentBuild, dt, out double targetFlow, out double targetHead);
|
// // if (!bol)
|
// // return;
|
// // cv = SimuCalc(dt, _simuPumps, targetFlow, targetHead, _constantP);
|
// // if (cv == null)
|
// // return;
|
// //}
|
|
// SetCurveChart(cv.TotalFlow, cv.TargetHead, cv.TotalPower, cv.TotalEff, cv.Pumps);
|
// SetPanelInfo(cv);
|
//}
|
}
|
|
#endregion
|
}
|
}
|