''' <summary>
''' Interface des animateurs Modbus
''' </summary>
''' <remarks></remarks>
Public Interface IAnimCom

    Inherits IAnimateur

#Region "Enumération"
    ''' <summary>
    ''' Enumération des types de connexion
    ''' </summary>
    ''' <remarks></remarks>
    Enum EConnexType
        ''' <summary>
        ''' Type inconnu (par défaut)
        ''' </summary>
        ''' <remarks></remarks>
        Unknow = 0
        ''' <summary>
        ''' Type liaison série
        ''' </summary>
        ''' <remarks></remarks>
        COM = 1
        ''' <summary>
        ''' Type TCP
        ''' </summary>
        ''' <remarks></remarks>
        TCP = 2
    End Enum
    ''' <summary>
    ''' Enumération des états de la connexion
    ''' </summary>
    ''' <remarks></remarks>
    <FlagsAttribute()> Enum EState
        ''' <summary>
        ''' Etat non définit
        ''' </summary>
        ''' <remarks></remarks>
        Unknow = 0
        ''' <summary>
        ''' Ne peut pas être connecté (hôte distant/port non accessible)
        ''' </summary>
        ''' <remarks></remarks>
        NotConnectable = 1
        ''' <summary>
        ''' Non connecté mais connectable
        ''' </summary>
        ''' <remarks></remarks>
        NotConnectedConnectable = 2
        ''' <summary>
        ''' Connecté
        ''' </summary>
        ''' <remarks></remarks>
        Connected = 3
        ''' <summary>
        ''' Indique que la connexion est en auto-connexion
        ''' </summary>
        ''' <remarks></remarks>
        AutoConnect = 128
    End Enum
#End Region

#Region "Evenement"
    ''' <summary>
    ''' Delegate des evenements de la connexion
    ''' </summary>
    ''' <param name="pSender">Emmeteur de l'event</param>
    ''' <remarks></remarks>
    Delegate Sub EvtConnexion(ByVal pSender As IAnimCom)

    ''' <summary>
    ''' Evenement géréré lors du démarrage de la connexion (ou de son passage en automatique)
    ''' </summary>
    ''' <remarks></remarks>
    Event StartConnexion As EvtConnexion
    ''' <summary>
    ''' Evenement généré lors de la perte de la connexion (en mode automatique)
    ''' </summary>
    ''' <remarks></remarks>
    Event LooseConnexion As EvtConnexion
    ''' <summary>
    ''' Evenement généré lors de la reconnexion (perte de la connexion ou connexion en mode automatique)
    ''' </summary>
    ''' <remarks></remarks>
    Event ReStartConnexion As EvtConnexion
    ''' <summary>
    ''' Evenement géréré lors de la déconnexion (par le code client)
    ''' </summary>
    ''' <remarks></remarks>
    Event StopConnexion As EvtConnexion
#End Region

    ''' <summary>
    ''' Ouvre la connexion (ou la passe en automatique)
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function Open() As Boolean
    ''' <summary>
    ''' Ferme la connexion
    ''' </summary>
    ''' <remarks></remarks>
    Sub Close()

    ''' <summary>
    ''' Retourne le type de connexion
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    ReadOnly Property ConnexionType() As EConnexType
    ''' <summary>
    ''' Retourne l'tat de la connexion
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    ReadOnly Property State() As EState
    ''' <summary>
    ''' Retourne ou définit les paramètre (pour enregistrement)
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    ReadOnly Property StringParam() As String
End Interface
