Namespace TCP.Frame
    ''' <summary>
    ''' Trame de requête 0x03 (3) : Lecture de N mots
    ''' </summary>
    ''' <remarks></remarks>
    Friend NotInheritable Class ClsFrameModbus03Req

        Inherits ClsFrameModbusOffsetLength

#Region "Constructeurs"
        ''' <summary>
        ''' Constructeur de la classe
        ''' </summary>
        ''' <param name="pTransId">numéro de la transaction</param>
        ''' <param name="pSlaveId">Numéro d'esclave</param>
        ''' <remarks></remarks>
        Public Sub New(ByVal pTransId As UShort, ByVal pSlaveId As Byte)
            MyBase.New(pTransId, pSlaveId, 3)
        End Sub
        ''' <summary>
        ''' Constructeur de la classe
        ''' </summary>
        ''' <param name="pTransId">numéro de la transaction</param>
        ''' <param name="pSlaveId">Numéro d'esclave</param>
        ''' <param name="pOffset">Offset de lecture</param>
        ''' <remarks></remarks>
        Public Sub New(ByVal pTransId As UShort, ByVal pSlaveId As Byte, ByVal pOffset As UShort)
            MyBase.New(pTransId, pSlaveId, 3, pOffset)
        End Sub
        ''' <summary>
        ''' Constructeur de la classe
        ''' </summary>
        ''' <param name="pTransId">numéro de la transaction</param>
        ''' <param name="pSlaveId">Numéro d'esclave</param>
        ''' <param name="pOffset">Offset de lecture</param>
        ''' <param name="pLength">Longueur des données à lire</param>
        ''' <remarks></remarks>
        Public Sub New(ByVal pTransId As UShort, ByVal pSlaveId As Byte, ByVal pOffset As UShort, ByVal pLength As Byte)
            MyBase.New(pTransId, pSlaveId, 3, pOffset, pLength)
        End Sub
        ''' <summary>
        ''' Constructeur de la classe
        ''' </summary>
        ''' <param name="pTransId">numéro de la transaction</param>
        ''' <param name="pSlaveId">Numéro d'esclave</param>
        ''' <param name="pLength">Longueur des données à lire</param>
        ''' <remarks></remarks>
        Public Sub New(ByVal pTransId As UShort, ByVal pSlaveId As Byte, ByVal pLength As Byte)
            MyBase.New(pTransId, pSlaveId, 3, pLength)
        End Sub
        ''' <summary>
        ''' Constructeur de la classe
        ''' </summary>
        ''' <param name="pSlaveId">Numéro d'esclave</param>
        ''' <remarks></remarks>
        Public Sub New(ByVal pSlaveId As Byte)
            MyBase.New(pSlaveId, 3)
        End Sub
        ''' <summary>
        ''' Constructeur de la classe
        ''' </summary>
        ''' <param name="pSlaveId">Numéro d'esclave</param>
        ''' <param name="pOffset">Offset de lecture</param>
        ''' <remarks></remarks>
        Public Sub New(ByVal pSlaveId As Byte, ByVal pOffset As UShort)
            MyBase.New(pSlaveId, 3, pOffset)
        End Sub
        ''' <summary>
        ''' Constructeur de la classe
        ''' </summary>
        ''' <param name="pSlaveId">Numéro d'esclave</param>
        ''' <param name="pOffset">Offset de lecture</param>
        ''' <param name="pLength">Longueur des données à lire</param>
        ''' <remarks></remarks>
        Public Sub New(ByVal pSlaveId As Byte, ByVal pOffset As UShort, ByVal pLength As Byte)
            MyBase.New(pSlaveId, 3, pOffset, pLength)
        End Sub
        ''' <summary>
        ''' Constructeur de la classe
        ''' </summary>
        ''' <param name="pSlaveId">Numéro d'esclave</param>
        ''' <param name="pLength">Longueur des données à lire</param>
        ''' <remarks></remarks>
        Public Sub New(ByVal pSlaveId As Byte, ByVal pLength As Byte)
            MyBase.New(pSlaveId, 3, pLength)
        End Sub
        ''' <summary>
        ''' Constructeur de la classe
        ''' </summary>
        ''' <param name="pFrame1">Trame reçue</param>
        ''' <param name="pFrame2">Trame reçue (copie)</param>
        ''' <remarks></remarks>
        Public Sub New(ByVal pFrame1 As Byte(), ByVal pFrame2 As Byte())
            MyBase.New(pFrame1, pFrame2)
        End Sub
#End Region

        ''' <summary>
        ''' Retourne le type de trame
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Overrides ReadOnly Property FrameType() As ClsFrameModbusBase.EFrameType
            Get
                Return EFrameType.Request
            End Get
        End Property
    End Class
End Namespace