/// <summary> /// Our unit display /// </summary> /// <param name="Unit"></param> /// <param name="Disp"></param> public MM_Unit_Display(MM_Unit Unit, MM_Operatorship_Display Disp) : base(Unit, Disp) { this.Unit = Unit; }
/// <summary> /// Our unit display /// </summary> /// <param name="Unit"></param> public MM_Unit_Display(MM_Unit Unit, MM_Generators_Display Disp) : base(Unit, Disp) { this.Unit = Unit; }
/// <summary> /// Build the list of words for this item /// </summary> /// <param name="Elem"></param> /// <param name="OutWords"></param> private void BuildWords(MM_Element Elem, Dictionary <String, bool> OutWords) { OutWords.Clear(); if (!String.IsNullOrEmpty(Elem.Name)) { AddWord(OutWords, Elem.Name); } if (Elem is MM_Substation) { MM_Substation Sub = Elem as MM_Substation; if (!String.IsNullOrEmpty(Sub.LongName)) { AddWord(OutWords, Sub.LongName); } if (Sub.County != null) { AddWord(OutWords, Sub.County.Name); } if (Sub.LoadZone != null) { AddWord(OutWords, Sub.LoadZone.Name); } if (Sub.WeatherZone != null) { AddWord(OutWords, Sub.WeatherZone.Name); } if (Sub.Units != null) { foreach (MM_Unit Unit in Sub.Units) { AddWord(OutWords, Unit.UnitType.Name); if (!String.IsNullOrEmpty(Unit.UnitType.EMSName)) { AddWord(OutWords, Unit.UnitType.EMSName); } if (Data_Integration.NetworkSource.Estimates && Data_Integration.UseEstimates) { AddWord(OutWords, Unit.Estimated_MW > 1f ? "Online" : "Offline"); } else { AddWord(OutWords, Unit.Telemetered_MW > 1f ? "Online" : "Offline"); } } } if (Sub.Loads != null) { foreach (MM_Load Load in Sub.Loads) { if (Data_Integration.NetworkSource.Estimates && Data_Integration.UseEstimates) { AddWord(OutWords, Load.Estimated_MW > 1f ? "Online" : "Offline"); } else { AddWord(OutWords, Load.Telemetered_MW > 1f ? "Online" : "Offline"); } } } } else if (Elem is MM_Unit) { MM_Unit Unit = Elem as MM_Unit; AddWord(OutWords, Unit.UnitType.Name); if (!String.IsNullOrEmpty(Unit.UnitType.EMSName)) { AddWord(OutWords, Unit.UnitType.EMSName); } if (Data_Integration.NetworkSource.Estimates && Data_Integration.UseEstimates) { AddWord(OutWords, Unit.Estimated_MW > 1f ? "Online" : "Offline"); } else { AddWord(OutWords, (!float.IsNaN(Unit.Telemetered_MW) && Unit.Telemetered_MW != 0 ? Unit.Telemetered_MW : Unit.Estimated_MW) > 1f ? "Online" : "Offline"); } } else if (Elem is MM_Load) { MM_Load Load = Elem as MM_Load; if (Data_Integration.NetworkSource.Estimates && Data_Integration.UseEstimates) { AddWord(OutWords, Load.Estimated_MW > 1f ? "Online" : "Offline"); } else { AddWord(OutWords, (!float.IsNaN(Load.Telemetered_MW) && Load.Telemetered_MW != 0 ? Load.Telemetered_MW : Load.Estimated_MW) > 1f ? "Online" : "Offline"); } } else if (Elem is MM_ShuntCompensator) { AddWord(OutWords, (Elem as MM_ShuntCompensator).Open ? "Open" : "Closed"); } if (Elem.Operator != null) { AddWord(OutWords, Elem.Operator.Name); AddWord(OutWords, Elem.Operator.Alias); } if (Elem.Owner != null) { AddWord(OutWords, Elem.Owner.Name); AddWord(OutWords, Elem.Owner.Alias); } if (Elem.Substation != null) { AddWord(OutWords, Elem.Substation.Name); AddWord(OutWords, Elem.Substation.LongName); if (Elem.Substation.County != null) { AddWord(OutWords, Elem.Substation.County.Name); } if (Elem.Substation.LoadZone != null) { AddWord(OutWords, Elem.Substation.LoadZone.Name); } if (Elem.Substation.WeatherZone != null) { AddWord(OutWords, Elem.Substation.WeatherZone.Name); } if (Elem.Substation.Units != null) { foreach (MM_Unit Unit in Elem.Substation.Units) { AddWord(OutWords, Unit.UnitType.Name); if (!string.IsNullOrEmpty(Unit.UnitType.EMSName)) { AddWord(OutWords, Unit.UnitType.EMSName); } if (Data_Integration.NetworkSource.Estimates && Data_Integration.UseEstimates) { if (Data_Integration.NetworkSource.Estimates && Data_Integration.UseEstimates) { AddWord(OutWords, Unit.Estimated_MW > 1f ? "Online" : "Offline"); } else { AddWord(OutWords, (!float.IsNaN(Unit.Telemetered_MW) && Unit.Telemetered_MW != 0 ? Unit.Telemetered_MW : Unit.Estimated_MW) > 1f ? "Online" : "Offline"); } } } } if (Elem.Substation.Loads != null) { foreach (MM_Load Load in Elem.Substation.Loads) { if (Data_Integration.NetworkSource.Estimates && Data_Integration.UseEstimates) { if (Data_Integration.NetworkSource.Estimates && Data_Integration.UseEstimates) { AddWord(OutWords, Load.Estimated_MW > 1f ? "Online" : "Offline"); } else { AddWord(OutWords, (!float.IsNaN(Load.Telemetered_MW) && Load.Telemetered_MW != 0 ? Load.Telemetered_MW : Load.Estimated_MW) > 1f ? "Online" : "Offline"); } } } } } if (Elem is MM_Line) { MM_Line Line = Elem as MM_Line; AddWord(OutWords, Line.ConnectedStations[0].Name); AddWord(OutWords, Line.ConnectedStations[0].LongName); AddWord(OutWords, Line.ConnectedStations[1].Name); AddWord(OutWords, Line.ConnectedStations[1].LongName); if (Line.ConnectedStations[0].County != null) { AddWord(OutWords, Line.ConnectedStations[0].County.Name); } if (Line.ConnectedStations[0].LoadZone != null) { AddWord(OutWords, Line.ConnectedStations[0].LoadZone.Name); } if (Line.ConnectedStations[0].WeatherZone != null) { AddWord(OutWords, Line.ConnectedStations[0].WeatherZone.Name); } if (Line.ConnectedStations[1].County != null) { AddWord(OutWords, Line.ConnectedStations[1].County.Name); } if (Line.ConnectedStations[1].LoadZone != null) { AddWord(OutWords, Line.ConnectedStations[1].LoadZone.Name); } if (Line.ConnectedStations[1].WeatherZone != null) { AddWord(OutWords, Line.ConnectedStations[1].WeatherZone.Name); } } }