private void CalculateMissingLLVoltageChannels() { Meter meter; DataSeries missingSeries; //Do this for every Voltage set for (int i = 0; i < m_vIndices.Count(); i++) { // If all line voltages are already present or there are not // atleast 2 lines we will not perform line to line calculations if (m_vIndices[i].DefinedLineVoltages == 3 || m_vIndices[i].DefinedNeutralVoltages < 2) { return; } // Get the meter associated with the channels in this data group DataSeries VA = m_dataGroup[m_vIndices[i].Va]; DataSeries VB = m_dataGroup[m_vIndices[i].Vb]; DataSeries VC = m_dataGroup[m_vIndices[i].Vc]; meter = (VA ?? VB ?? VC).SeriesInfo.Channel.Meter; if (m_vIndices[i].Vab == -1 && VA != null && VB != null) { // Calculate VAB = VA - VB missingSeries = VA.Add(VB.Negate()); missingSeries.SeriesInfo = GetSeriesInfo(meter, m_dataGroup, "Voltage", "AB", VA.SeriesInfo.Channel.AssetID); missingSeries.Calculated = true; m_vIndices[i].Vab = m_dataGroup.DataSeries.Count; m_dataGroup.Add(missingSeries); } if (m_vIndices[i].Vbc == -1 && VB != null && VC != null) { // Calculate VBC = VB - VC missingSeries = VB.Add(VC.Negate()); missingSeries.SeriesInfo = GetSeriesInfo(meter, m_dataGroup, "Voltage", "BC", VB.SeriesInfo.Channel.AssetID); missingSeries.Calculated = true; m_vIndices[i].Vbc = m_dataGroup.DataSeries.Count; m_dataGroup.Add(missingSeries); } if (m_vIndices[i].Vca == -1 && VC != null && VA != null) { // Calculate VCA = VC - VA missingSeries = VC.Add(VA.Negate()); missingSeries.SeriesInfo = GetSeriesInfo(meter, m_dataGroup, "Voltage", "CA", VC.SeriesInfo.Channel.AssetID); missingSeries.Calculated = true; m_vIndices[i].Vca = m_dataGroup.DataSeries.Count; m_dataGroup.Add(missingSeries); } } }
public DataSeries Subtract(DataSeries operand) { return Add(operand.Negate()); }
public DataSeries Subtract(DataSeries operand) { return(Add(operand.Negate())); }