Пример #1
0
 /// <summary>
 /// Raises the <see cref="ReceivedHeaderFrame"/> event.
 /// </summary>
 /// <param name="frame"><see cref="IHeaderFrame"/> to send to <see cref="ReceivedHeaderFrame"/> event.</param>
 protected virtual void OnReceivedHeaderFrame(IHeaderFrame frame)
 {
     if ((object)ReceivedHeaderFrame != null)
     {
         ReceivedHeaderFrame(this, new EventArgs <IHeaderFrame>(frame));
     }
 }
Пример #2
0
        /// <summary>
        /// Raises the <see cref="FrameParserBase{TypeIndentifier}.ReceivedHeaderFrame"/> event.
        /// </summary>
        /// <param name="frame"><see cref="IHeaderFrame"/> to send to <see cref="FrameParserBase{TypeIndentifier}.ReceivedHeaderFrame"/> event.</param>
        protected override void OnReceivedHeaderFrame(IHeaderFrame frame)
        {
            // We override this method so we can cache header frame when it's received
            base.OnReceivedHeaderFrame(frame);

            //// Cache new header frame for parsing subsequent configuration frame...
            HeaderFrame headerFrame = frame as HeaderFrame;

            if (headerFrame != null)
            {
                m_headerFrame = headerFrame;
            }
        }
Пример #3
0
        /// <summary>
        /// Casts the parsed <see cref="IChannelFrame"/> to its specific implementation (i.e., <see cref="IDataFrame"/>, <see cref="IConfigurationFrame"/>, <see cref="ICommandFrame"/> or <see cref="IHeaderFrame"/>).
        /// </summary>
        /// <param name="frame"><see cref="IChannelFrame"/> that was parsed by <see cref="FrameImageParserBase{TTypeIdentifier,TOutputType}"/> that implements protocol specific common frame header interface.</param>
        protected virtual void OnReceivedChannelFrame(IChannelFrame frame)
        {
            // Process frame types in order or likely occurrence
            if ((object)frame != null)
            {
                IDataFrame dataFrame = frame as IDataFrame;

                if ((object)dataFrame != null)
                {
                    // Frame was a data frame
                    OnReceivedDataFrame(dataFrame);
                }
                else
                {
                    IConfigurationFrame configFrame = frame as IConfigurationFrame;

                    if ((object)configFrame != null)
                    {
                        // Frame was a configuration frame
                        OnReceivedConfigurationFrame(configFrame);
                    }
                    else
                    {
                        IHeaderFrame headerFrame = frame as IHeaderFrame;

                        if ((object)headerFrame != null)
                        {
                            // Frame was a header frame
                            OnReceivedHeaderFrame(headerFrame);
                        }
                        else
                        {
                            ICommandFrame commandFrame = frame as ICommandFrame;

                            if ((object)commandFrame != null)
                            {
                                // Frame was a command frame
                                OnReceivedCommandFrame(commandFrame);
                            }
                            else
                            {
                                // Frame type was undetermined
                                OnReceivedUndeterminedFrame(frame);
                            }
                        }
                    }
                }
            }
        }
Пример #4
0
        /// <summary>
        /// Raises the <see cref="FrameParserBase{TypeIndentifier}.ReceivedHeaderFrame"/> event.
        /// </summary>
        /// <param name="frame"><see cref="IHeaderFrame"/> to send to <see cref="FrameParserBase{TypeIndentifier}.ReceivedHeaderFrame"/> event.</param>
        protected override void OnReceivedHeaderFrame(IHeaderFrame frame)
        {
            // IEEE 1344 header frames can span multiple frame images, so we don't allow base class to raise this event until all frames have been assembled...
            ISupportFrameImage <FrameType> frameImage = frame as ISupportFrameImage <FrameType>;

            if (frameImage != null)
            {
                CommonFrameHeader commonHeader = frameImage.CommonHeader as CommonFrameHeader;

                if (commonHeader != null && commonHeader.IsLastFrame)
                {
                    base.OnReceivedHeaderFrame(frame);
                }
            }
        }
Пример #5
0
 /// <summary>
 /// Creates a new <see cref="HeaderCell"/> from specified parameters.
 /// </summary>
 /// <param name="parent">A reference to the parent <see cref="ICommandFrame"/> for this <see cref="HeaderCell"/>.</param>
 /// <param name="character">ASCII character as a <see cref="byte"/> that represents this <see cref="HeaderCell"/>.</param>
 public HeaderCell(IHeaderFrame parent, byte character)
     : base(parent, 0)
 {
     m_character = character;
 }
Пример #6
0
 /// <summary>
 /// Creates a new <see cref="HeaderCell"/> from specified parameters.
 /// </summary>
 /// <param name="parent">A reference to the parent <see cref="ICommandFrame"/> for this <see cref="HeaderCell"/>.</param>
 /// <param name="character">ASCII character as a <see cref="Byte"/> that represents this <see cref="HeaderCell"/>.</param>
 public HeaderCell(IHeaderFrame parent, byte character)
     : base(parent, 0)
 {
     m_character = character;
 }
Пример #7
0
 /// <summary>
 /// Raises the <see cref="ReceivedHeaderFrame"/> event.
 /// </summary>
 /// <param name="frame"><see cref="IHeaderFrame"/> to send to <see cref="ReceivedHeaderFrame"/> event.</param>
 protected virtual void OnReceivedHeaderFrame(IHeaderFrame frame)
 {
     ReceivedHeaderFrame?.Invoke(this, new EventArgs <IHeaderFrame>(frame));
 }