Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 3
0
        /// <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());
            }
        }
Ejemplo n.º 4
0
 /// <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(),
     });
Ejemplo n.º 5
0
        /// <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);
        }
Ejemplo n.º 7
0
 /// <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;
 }
Ejemplo n.º 8
0
        /// <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;
        }