private static string GetOldProtocolName(PhasorProtocol protocol) { switch (protocol) { case PhasorProtocol.IEEEC37_118V2: return("IeeeC37_118V2"); case PhasorProtocol.IEEEC37_118V1: return("IeeeC37_118V1"); case PhasorProtocol.IEEEC37_118D6: return("IeeeC37_118D6"); case PhasorProtocol.IEEE1344: return("Ieee1344"); case PhasorProtocol.BPAPDCstream: return("BpaPdcStream"); case PhasorProtocol.FNET: return("FNet"); case PhasorProtocol.SelFastMessage: return("SelFastMessage"); case PhasorProtocol.Macrodyne: return("Macrodyne"); case PhasorProtocol.IEC61850_90_5: return("Iec61850_90_5"); default: return(protocol.ToString()); } }
/// <summary> /// Creates a new <see cref="ConnectionSettings"/> instance from serialization parameters. /// </summary> /// <param name="info">The <see cref="SerializationInfo"/> with populated with data.</param> /// <param name="context">The source <see cref="StreamingContext"/> for this deserialization.</param> protected ConnectionSettings(SerializationInfo info, StreamingContext context) { // Deserialize connection settings values if (!Enum.TryParse(info.GetOrDefault("PhasorProtocol", "IEEEC37_118V1"), true, out PhasorProtocol)) { PhasorProtocol = PhasorProtocol.IEEEC37_118V1; } if (!Enum.TryParse(info.GetOrDefault("TransportProtocol", "Tcp"), true, out TransportProtocol)) { TransportProtocol = TransportProtocol.Tcp; } ConnectionString = info.GetOrDefault("ConnectionString", (string)null); if (!int.TryParse(info.GetOrDefault("PmuID", "1"), out PmuID)) { PmuID = 1; } if (!int.TryParse(info.GetOrDefault("FrameRate", "30"), out FrameRate)) { FrameRate = 30; } AutoRepeatPlayback = info.GetOrDefault("AutoRepeatPlayback", "false").ParseBoolean(); if (!int.TryParse(info.GetOrDefault("ByteEncodingDisplayFormat", "0"), out ByteEncodingDisplayFormat)) { ByteEncodingDisplayFormat = 0; } ConnectionParameters = info.GetOrDefault("ConnectionParameters", (IConnectionParameters)null); }
/// <summary> /// Returns display friendly protocol name. /// </summary> /// <param name="protocol"><see cref="PhasorProtocol"/> to return display name for.</param> /// <returns>Friendly protocol display name for specified phasor <paramref name="protocol"/>.</returns> public static string GetFormattedProtocolName(this PhasorProtocol protocol) { switch (protocol) { case PhasorProtocol.IEEEC37_118V2: return("IEEE C37.118.2-2011"); case PhasorProtocol.IEEEC37_118V1: return("IEEE C37.118-2005"); case PhasorProtocol.IEEEC37_118D6: return("IEEE C37.118 Draft 6"); case PhasorProtocol.IEEE1344: return("IEEE 1344-1995"); case PhasorProtocol.BPAPDCstream: return("BPA PDCstream"); case PhasorProtocol.FNET: return("UTK F-NET"); case PhasorProtocol.SelFastMessage: return("SEL Fast Message"); case PhasorProtocol.Macrodyne: return("Macrodyne"); case PhasorProtocol.IEC61850_90_5: return("IEC 61850-90-5"); default: return(protocol.ToString().Replace('_', '.').ToUpper()); } }
/// <summary> /// Returns display friendly protocol name. /// </summary> /// <param name="protocol"><see cref="PhasorProtocol"/> to return display name for.</param> /// <returns>Friendly protocol display name for specified phasor <paramref name="protocol"/>.</returns> public static string GetFormattedProtocolName(this PhasorProtocol protocol) { return(protocol switch { PhasorProtocol.IEEEC37_118V2 => "IEEE C37.118.2-2011", PhasorProtocol.IEEEC37_118V1 => "IEEE C37.118-2005", PhasorProtocol.IEEEC37_118D6 => "IEEE C37.118 Draft 6", PhasorProtocol.IEEE1344 => "IEEE 1344-1995", PhasorProtocol.BPAPDCstream => "BPA PDCstream", PhasorProtocol.FNET => "UTK F-NET", PhasorProtocol.SelFastMessage => "SEL Fast Message", PhasorProtocol.Macrodyne => "Macrodyne", PhasorProtocol.IEC61850_90_5 => "IEC 61850-90-5", _ => protocol.ToString().Replace('_', '.').ToUpper(), });
/// <summary> /// Creates a new <see cref="MultiProtocolFrameParser"/> using the default settings. /// </summary> public MultiProtocolFrameParser() { m_connectionString = "server=127.0.0.1:4712"; m_deviceID = 1; m_bufferSize = DefaultBufferSize; m_maximumConnectionAttempts = DefaultMaximumConnectionAttempts; m_autoStartDataParsingSequence = DefaultAutoStartDataParsingSequence; m_allowedParsingExceptions = DefaultAllowedParsingExceptions; m_parsingExceptionWindow = DefaultParsingExceptionWindow; m_checkSumValidationFrameTypes = CheckSumValidationFrameTypes.AllFrames; m_trustHeaderLength = true; m_keepCommandChannelOpen = true; m_rateCalcTimer = new Timer(); m_phasorProtocol = PhasorProtocol.IEEEC37_118V1; m_transportProtocol = TransportProtocol.Tcp; // Set default frame rate, this calculates milliseconds for each frame DefinedFrameRate = DefaultDefinedFrameRate; m_rateCalcTimer.Elapsed += m_rateCalcTimer_Elapsed; m_rateCalcTimer.Interval = 5000; m_rateCalcTimer.AutoReset = true; m_rateCalcTimer.Enabled = false; // Set minimum timer resolution to one millisecond to improve timer accuracy PrecisionTimer.SetMinimumTimerResolution(1); }
/// <summary> /// Creates a new <see cref="ConnectionSettings"/> instance from serialization parameters. /// </summary> /// <param name="info">The <see cref="SerializationInfo"/> with populated with data.</param> /// <param name="context">The source <see cref="StreamingContext"/> for this deserialization.</param> protected ConnectionSettings(SerializationInfo info, StreamingContext context) { // Deserialize connection settings values if (!Enum.TryParse(info.GetOrDefault("PhasorProtocol", "IEEEC37_118V1"), true, out PhasorProtocol)) PhasorProtocol = PhasorProtocol.IEEEC37_118V1; if (!Enum.TryParse(info.GetOrDefault("TransportProtocol", "Tcp"), true, out TransportProtocol)) TransportProtocol = TransportProtocol.Tcp; ConnectionString = info.GetOrDefault("ConnectionString", (string)null); if (!int.TryParse(info.GetOrDefault("PmuID", "1"), out PmuID)) PmuID = 1; if (!int.TryParse(info.GetOrDefault("FrameRate", "30"), out FrameRate)) FrameRate = 30; if (!(info.GetOrDefault("AutoRepeatPlayback", "false")).ParseBoolean()) AutoRepeatPlayback = false; if (!int.TryParse(info.GetOrDefault("ByteEncodingDisplayFormat", "0"), out ByteEncodingDisplayFormat)) ByteEncodingDisplayFormat = 0; ConnectionParameters = info.GetOrDefault("ConnectionParameters", (IConnectionParameters)null); }
/// <summary> /// Creates a new <see cref="MultiProtocolFrameParser"/> using the specified <see cref="PhasorProtocol"/> and <see cref="TransportProtocol"/>. /// </summary> /// <param name="phasorProtocol">Phasor protocol to use for this frame parser.</param> /// <param name="transportProtocol">Transport protocol to use for this frame parser.</param> public MultiProtocolFrameParser(PhasorProtocol phasorProtocol, TransportProtocol transportProtocol) : this() { m_phasorProtocol = phasorProtocol; m_transportProtocol = transportProtocol; }
/// <summary> /// Creates a new <see cref="MultiProtocolFrameParser"/> using the default settings. /// </summary> public MultiProtocolFrameParser() { m_connectionString = "server=127.0.0.1:4712"; m_deviceID = 1; m_bufferSize = DefaultBufferSize; m_definedFrameRate = DefaultDefinedFrameRate; m_maximumConnectionAttempts = DefaultMaximumConnectionAttempts; m_autoStartDataParsingSequence = DefaultAutoStartDataParsingSequence; m_rateCalcTimer = new System.Timers.Timer(); m_phasorProtocol = PhasorProtocol.IeeeC37_118V1; m_transportProtocol = TransportProtocol.Tcp; m_rateCalcTimer.Elapsed += m_rateCalcTimer_Elapsed; m_rateCalcTimer.Interval = 5000; m_rateCalcTimer.AutoReset = true; m_rateCalcTimer.Enabled = false; }