/// <summary> /// Creates a new <see cref="FrameParser"/> from specified parameters. /// </summary> /// <param name="checkSumValidationFrameTypes">Frame types that should perform check-sum validation; default to <see cref="GSF.PhasorProtocols.CheckSumValidationFrameTypes.AllFrames"/></param> /// <param name="trustHeaderLength">Determines if header lengths should be trusted over parsed byte count.</param> /// <param name="messagePeriod">The desired <see cref="SelFastMessage.MessagePeriod"/> for SEL device connection.</param> public FrameParser(CheckSumValidationFrameTypes checkSumValidationFrameTypes = CheckSumValidationFrameTypes.AllFrames, bool trustHeaderLength = true, MessagePeriod messagePeriod = MessagePeriod.DefaultRate) : base(checkSumValidationFrameTypes, trustHeaderLength) { // Initialize protocol synchronization bytes for this frame parser base.ProtocolSyncBytes = new[] { Common.HeaderByte1, Common.HeaderByte2 }; MessagePeriod = messagePeriod; }
/// <summary> /// Creates a new <see cref="FrameParser"/> from specified parameters. /// </summary> /// <param name="checkSumValidationFrameTypes">Frame types that should perform check-sum validation; default to <see cref="GSF.PhasorProtocols.CheckSumValidationFrameTypes.AllFrames"/></param> /// <param name="trustHeaderLength">Determines if header lengths should be trusted over parsed byte count.</param> /// <param name="protocolVersion">The protocol version that the parser should use.</param> /// <param name="configurationFileName">The optional external Macrodyne configuration in BPA PDCstream INI file based format.</param> /// <param name="deviceLabel">The INI section device label to use.</param> public FrameParser(CheckSumValidationFrameTypes checkSumValidationFrameTypes = CheckSumValidationFrameTypes.AllFrames, bool trustHeaderLength = true, ProtocolVersion protocolVersion = ProtocolVersion.M, string configurationFileName = null, string deviceLabel = null) : base(checkSumValidationFrameTypes, trustHeaderLength) { m_syncLock = new object(); m_protocolVersion = protocolVersion; m_deviceLabel = deviceLabel; ConfigurationFileName = configurationFileName; }
/// <summary> /// Creates a new <see cref="FrameParser"/>. /// </summary> /// <param name="checkSumValidationFrameTypes">Frame types that should perform check-sum validation; default to <see cref="GSF.PhasorProtocols.CheckSumValidationFrameTypes.AllFrames"/></param> /// <param name="trustHeaderLength">Determines if header lengths should be trusted over parsed byte count.</param> /// <param name="draftRevision">The <see cref="IEEEC37_118.DraftRevision"/> of this <see cref="FrameParser"/>.</param> public FrameParser(CheckSumValidationFrameTypes checkSumValidationFrameTypes = CheckSumValidationFrameTypes.AllFrames, bool trustHeaderLength = true, DraftRevision draftRevision = DraftRevision.Std2005) : base(checkSumValidationFrameTypes, trustHeaderLength) { // Initialize protocol synchronization bytes for this frame parser base.ProtocolSyncBytes = new[] { GemstonePhasorProtocolls.Common.SyncByte }; DraftRevision = draftRevision; }
/// <summary> /// Creates a new <see cref="FrameParser"/>. /// </summary> /// <param name="checkSumValidationFrameTypes">Frame types that should perform check-sum validation; default to <see cref="GSF.PhasorProtocols.CheckSumValidationFrameTypes.AllFrames"/></param> /// <param name="trustHeaderLength">Determines if header lengths should be trusted over parsed byte count.</param> /// <param name="configurationFileName">The required external BPA PDCstream INI based configuration file.</param> public FrameParser(CheckSumValidationFrameTypes checkSumValidationFrameTypes = CheckSumValidationFrameTypes.AllFrames, bool trustHeaderLength = true, string configurationFileName = null) : base(checkSumValidationFrameTypes, trustHeaderLength) { // Initialize protocol synchronization bytes for this frame parser base.ProtocolSyncBytes = new[] { PhasorProtocols.Common.SyncByte }; m_syncLock = new object(); m_configurationFileName = configurationFileName; }
/// <summary> /// Creates a new <see cref="FrameParserBase{TypeIndentifier}"/>. /// </summary> /// <param name="checkSumValidationFrameTypes">Frame types that should perform check-sum validation; default to <see cref="GSF.PhasorProtocols.CheckSumValidationFrameTypes.AllFrames"/></param> /// <param name="trustHeaderLength">Determines if header lengths should be trusted over parsed byte count.</param> protected FrameParserBase(CheckSumValidationFrameTypes checkSumValidationFrameTypes, bool trustHeaderLength) { // We attach to base class DataParsed event to automatically redirect and cast channel frames to their specific output events base.DataParsed += base_DataParsed; base.DuplicateTypeHandlerEncountered += base_DuplicateTypeHandlerEncountered; base.OutputTypeNotFound += base_OutputTypeNotFound; m_checkSumValidationFrameTypes = checkSumValidationFrameTypes; m_trustHeaderLength = trustHeaderLength; }
/// <summary> /// Creates a new <see cref="FrameParser"/>. /// </summary> /// <param name="checkSumValidationFrameTypes">Frame types that should perform check-sum validation; default to <see cref="GSF.PhasorProtocols.CheckSumValidationFrameTypes.AllFrames"/></param> /// <param name="trustHeaderLength">Determines if header lengths should be trusted over parsed byte count.</param> /// <param name="frameRate">The defined frame rate of this <see cref="ConfigurationFrame"/>.</param> /// <param name="nominalFrequency">The nominal <see cref="LineFrequency"/> of this <see cref="ConfigurationFrame"/>.</param> /// <param name="timeOffset">The time offset of F-NET device in <see cref="Ticks"/>.</param> /// <param name="stationName">The station name of the F-NET device.</param> public FrameParser(CheckSumValidationFrameTypes checkSumValidationFrameTypes = CheckSumValidationFrameTypes.AllFrames, bool trustHeaderLength = true, ushort frameRate = Common.DefaultFrameRate, LineFrequency nominalFrequency = Common.DefaultNominalFrequency, long timeOffset = Common.DefaultTimeOffset, string stationName = Common.DefaultStationName) : base(checkSumValidationFrameTypes, trustHeaderLength) { // Initialize protocol synchronization bytes for this frame parser base.ProtocolSyncBytes = new[] { Common.StartByte }; FrameRate = frameRate; NominalFrequency = nominalFrequency; TimeOffset = timeOffset; StationName = stationName; }
/// <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="FrameParser"/>. /// </summary> /// <param name="checkSumValidationFrameTypes">Frame types that should perform check-sum validation; default to <see cref="GSF.PhasorProtocols.CheckSumValidationFrameTypes.AllFrames"/></param> /// <param name="trustHeaderLength">Determines if header lengths should be trusted over parsed byte count.</param> public FrameParser(CheckSumValidationFrameTypes checkSumValidationFrameTypes = CheckSumValidationFrameTypes.AllFrames, bool trustHeaderLength = true) : base(checkSumValidationFrameTypes, trustHeaderLength) { m_samplesPerFrame = ushort.MaxValue; }
/// <summary> /// Creates a new <see cref="FrameParser"/>. /// </summary> /// <param name="checkSumValidationFrameTypes">Frame types that should perform check-sum validation; default to <see cref="GSF.PhasorProtocols.CheckSumValidationFrameTypes.AllFrames"/></param> /// <param name="trustHeaderLength">Determines if header lengths should be trusted over parsed byte count.</param> public FrameParser(CheckSumValidationFrameTypes checkSumValidationFrameTypes = CheckSumValidationFrameTypes.AllFrames, bool trustHeaderLength = true) : base(checkSumValidationFrameTypes, trustHeaderLength) { }