using System;

namespace HwComWrapperNETGui.UserControls
{
    /// <summary>
    ///     The change signal, PDU or control value <see cref="EventArgs"/> class.
    /// </summary>
    public class ChangeSignalPDUControlEventArgs : EventArgs
    {
        private readonly ulong id;
        private readonly ushort length;
        private readonly byte[] value;

        #region Constructors and Destructors

        /// <summary>
        ///     Initializes a new instance of the <see cref="ChangeSignalPDUControlEventArgs"/> class.
        /// </summary>
        /// <param name="id"> the signal, PDU or control id.</param>
        /// <param name="length"> the signal, PDU or control value length.</param>
        /// <param name="value"> the signal, PDU or control payload value.</param>
        public ChangeSignalPDUControlEventArgs(ulong id, ushort length, byte[] value)
        {
            this.id = id;
            this.length = length;
            this.value = value;
        }

        #endregion

        #region Public Properties

        /// <summary>
        ///     Gets the signal, PDU or control id.
        /// </summary>
        public ulong Id
        {
            get
            {
                return this.id;
            }
        }

        /// <summary>
        ///     Gets the signal, PDU or control value length.
        /// </summary>
        public ushort Length
        {
            get
            {
                return this.length;
            }
        }

        /// <summary>
        ///     Gets the signal, PDU or control payload value.
        /// </summary>
        public byte[] Value
        {
            get
            {
                return this.value;
            }
        }

        #endregion

        #region Constants and Fields

        #endregion
    }
}