| | |
| | | /// </summary> |
| | | public SimulationCalcuResultLabelHelper |
| | | ( |
| | | SimulationVisualListHelper visualListHelper, |
| | | SimulationCalcuResultHelper calcuResultHelper, |
| | | ISimulationCalcuResultLabelView view |
| | | ) |
| | | { |
| | | _visualListHelper = visualListHelper; |
| | | _calcuResultHelper = calcuResultHelper; |
| | | _views = new List<ISimulationCalcuResultLabelView>() { view }; |
| | | } |
| | | |
| | | private SimulationVisualListHelper _visualListHelper = null;//可见列表辅助类 |
| | | private SimulationCalcuResultHelper _calcuResultHelper = null;//计算结果辅助类 |
| | | private List<ISimulationCalcuResultLabelView> _views = null;//视图列表 |
| | | |
| | |
| | | if (this.Visible) |
| | | { |
| | | var labels = GetLabels(); |
| | | _views.ForEach(x => x.SetLogicCalcuCustomLabels(labels)); |
| | | if (labels != null && labels.Count > 0) |
| | | { |
| | | _views.ForEach(async x => await x.SetLogicCalcuCustomLabels(labels)); |
| | | return; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | _views.ForEach(x => x.ClearLogicCalcuCustomLabels()); |
| | | } |
| | | _views.ForEach(async x => await x.ClearLogicCalcuCustomLabels()); |
| | | } |
| | | |
| | | |
| | | //获取计算标签 |
| | | private List<LogicCalcuCustomLabel> GetLabels() |
| | | { |
| | | var hydroInfo = _visualListHelper.HydroInfo; |
| | | if (hydroInfo == null) |
| | | if (!_calcuResultHelper.Initialized) |
| | | { |
| | | return default; |
| | | } |
| | | var allCalcuResultVisualDict = _calcuResultHelper.GetVisualDict(); |
| | | var allCalcuLabels = new List<LogicCalcuCustomLabel>(); |
| | | hydroInfo.Pumps?.ForEach(x => |
| | | _calcuResultHelper.HydroInfo.Pumps?.ForEach(x => |
| | | { |
| | | var hz = Math.Round(x.RatedHz * x.SpeedRatio); |
| | | var calcuPumpResult = allCalcuResultVisualDict.GetValue(x.Code) as HydroCalcuLinkResult; |
| | |
| | | pumpCustomLabel.Id = x.Code; |
| | | pumpCustomLabel.Distance = 20000; |
| | | pumpCustomLabel.Data = new List<LogicCalcuCustomLabelItem>() |
| | | { |
| | | new LogicCalcuCustomLabelItem(){ Name="状态",Value=HydroLinkStatusHelper.GetStatusName(x.LinkStatus),Unit=string.Empty}, |
| | | new LogicCalcuCustomLabelItem(){ Name="频率",Value=hz.ToString(),Unit=string.Empty}, |
| | | new LogicCalcuCustomLabelItem(){ Name="流量",Value=Math.Round(calcuPumpResult.CalcuFlow.Value,1).ToString(),Unit="m³/h"}, |
| | | new LogicCalcuCustomLabelItem(){ Name="进口压力",Value=Math.Round(calcuPumpStartResult.CalcuHead.Value,4).ToString(),Unit="m"}, |
| | | new LogicCalcuCustomLabelItem(){ Name="出口压力",Value=Math.Round(calcuPumpEndResult.CalcuHead.Value,4).ToString(),Unit="m"}, |
| | | }; |
| | | { |
| | | new LogicCalcuCustomLabelItem(){ Name="状态",Value=HydroLinkStatusHelper.GetStatusName(x.LinkStatus),Unit=string.Empty}, |
| | | new LogicCalcuCustomLabelItem(){ Name="频率",Value=x.LinkStatus==Yw.Hydro.PumpStatus.Open?hz.ToString():"0",Unit="hz"}, |
| | | new LogicCalcuCustomLabelItem(){ Name="流量",Value=Math.Round(calcuPumpResult.CalcuFlow.Value,1).ToString(),Unit="m³/h"}, |
| | | new LogicCalcuCustomLabelItem(){ Name="进口压力",Value=Math.Round(calcuPumpStartResult.CalcuHead.Value,4).ToString(),Unit="m"}, |
| | | new LogicCalcuCustomLabelItem(){ Name="出口压力",Value=Math.Round(calcuPumpEndResult.CalcuHead.Value,4).ToString(),Unit="m"}, |
| | | }; |
| | | allCalcuLabels.Add(pumpCustomLabel); |
| | | } |
| | | }); |
| | | |
| | | hydroInfo.GetAllEmitters()?.ForEach(x => |
| | | _calcuResultHelper.HydroInfo.GetAllEmitters()?.ForEach(x => |
| | | { |
| | | var calcuEmitter = allCalcuResultVisualDict.GetValue(x.Code) as HydroCalcuNodeResult; |
| | | var emitterCustomLabel = new LogicCalcuCustomLabel(); |