IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

SerialPort vs MSComm


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2013
    Messages : 76
    Par défaut SerialPort vs MSComm
    Bonjour,
    je cherche l'équivalent de ces évènements et méthodes en vb.net avec SerialPort :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    MSComm1_OnComm()
          MSComm1.InputMode
          MSComm1.Output
          CommEvent
    et comment je peux remplacer ce code en vb.net(juste les evenements):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
     Select Case MSComm1.CommEvent
            Case comEvReceive
                If MSComm1.InputMode = comInputModeBinary Then
                    ReceiveArray (MSComm1.Input)
                Else
                    ReceiveText (MSComm1.Input)
                End If
            Case comBreak
                Info.Value = Now & " : A Break was received."
                'EcrireEvtSig (Info.Value)
            Case comCDTO
                Info.Value = Now & " : CD (RLSD) Timeout."
                EcrireEvtSig (Info.Value)
            Case comCTSTO
                Info.Value = Now & " : CTS Timeout."
                EcrireEvtSig (Info.Value)
            Case comDSRTO
                Info.Value = Now & " : DSR Timeout."
                EcrireEvtSig (Info.Value)
            Case comFrame
                Info.Value = Now & " : Framing Error"
                EcrireEvtSig (Info.Value)
            Case comOverrun
                Info.Value = Now & " : Data Lost."
                EcrireEvtSig (Info.Value)
            Case comRxOver
                Info.Value = Now & " : Receive buffer overflow."
                EcrireEvtSig (Info.Value)
            Case comRxParity
                Info.Value = Now & " : Parity Error."
                EcrireEvtSig (Info.Value)
            Case comTxFull
                Info.Value = Now & " : Transmit buffer full."
                EcrireEvtSig (Info.Value)
            Case comEvCD
                'Info.Value = Now & " : Change in the CD line."
                'If Not MSComm1.CDHolding Then
                '    StopCom
                'Else
                '    StartCom
                'End If
                'EcrireEvtSig (Info.Value)
            Case comEvCTS
                Info.Value = Now & " : Change in the CTS line. (" & MSComm1.CTSHolding & ")"
                'EcrireEvtSig (Info.Value)
            Case comEvDSR
                'Info.Value = Now & " : Change in the DSR line."
                'EcrireEvtSig (Info.Value)
            Case comEvRing
                Info.Value = Now & " : Change in the Ring Indicator."
                'EcrireEvtSig (Info.Value)
            Case comEvSend
                Info.Value = Now & " : Chars in send buffer"
                EcrireEvtSig (Info.Value)
        End Select
    Merci beaucoup

  2. #2
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Par défaut
    Bonjour,
    Pour l'évenement OnComm() je pense qu'il y a pas exactement l'équivalent, donc tu dois utiliser d'autres évenements qui pourront faire l'affaire.
    Sinon pour ton select case je te donne un module qui traite l'équivalent de ces évenements
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Imports System.IO.Ports
    Module Module1
        Public port As SerialPort = New SerialPort("Com1")
        Sub Main()
            port.Open()
        End Sub
        Sub receive(ByVal sender As Object, ByVal e As SerialDataReceivedEventArgs) Handles DataReceived
            Select Case e.EventType
                Case SerialData.Chars
                Case SerialData.Eof
            End Select
        End Sub
        Sub s_error(ByVal sender As Object, ByVal e As SerialErrorReceivedEventArgs) Handles ErrorReceived
            Select Case e.EventType
                Case SerialError.Frame
                Case SerialError.Overrun
                Case SerialError.RXOver
                Case SerialError.RXParity
                Case SerialError.TXFull
            End Select
        End Sub
        Sub pinchanged(ByVal sender As Object, ByVal e As SerialPinChangedEventArgs) Handles PinChanged
            Select Case e.EventType
                Case SerialPinChange.Break
                Case SerialPinChange.CDChanged
                Case SerialPinChange.CtsChanged
                Case SerialPinChange.DsrChanged
                Case SerialPinChange.Ring
            End Select
        End Sub
    End Module
    voilà, après tu peux rajouter les messages que tu veux afficher pour chaque cas

  3. #3
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2013
    Messages : 76
    Par défaut
    Merci mawkli,
    c'est exactement ce que je cherchais,il y a presque tous les évènements,mais j'au une question: est ce que je suis obligée de mettre le code dans un module où je peux le mettre directement au sein de la classe( en vba c'était dans mscomm1_OnComm() )?
    Merci encore

  4. #4
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2013
    Messages : 76
    Par défaut
    Re-bonjour,
    J'ai pris le code ,que Mawkli a écrit, et je l'ai mis dans l'évenement DataReceived au lieu du module, je veux savoir si c'est bon ou pas ( il retourne pas d'erreurs) mais je l'ai pas encore testé en réception de données,car je débute mon application.voilà ce que j'ai écrit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
            Select Case e.EventType
                Case SerialData.Chars
                    ' MsgBox("data" & SerialData.Chars)
                Case SerialData.Eof
                Case SerialError.Frame
                Case SerialError.Overrun
                Case SerialError.RXOver
                Case SerialError.RXParity
                Case SerialError.TXFull
                Case SerialPinChange.Break
                Case SerialPinChange.CDChanged
                Case SerialPinChange.CtsChanged
                Case SerialPinChange.DsrChanged
                Case SerialPinChange.Ring
            End Select
     
        End Sub

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Par défaut
    salut Rose Butterfly,
    Tu n'es pas obligée d'utiliser un module,mais ce que tu as écrit est faux
    Car il faut utiliser trois évenements indépendants qui sont: DataReceived,ErrorReceived et PinChanged et après tu met le code correspondant à chaque évenement comme je te l'avais écrit en dessus

  6. #6
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2013
    Messages : 76
    Par défaut
    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [javax.comm] SerialPort
    Par zehle dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 25/10/2007, 13h53
  2. [VB6]:A quoi sert le MSComm?
    Par gaetan.tranvouez dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 12/06/2006, 13h02
  3. Réponses: 11
    Dernier message: 06/04/2006, 13h30
  4. Problème réception avec MsComm
    Par Jap dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 07/12/2005, 11h20
  5. [VB6] mscomm
    Par Persons dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 09/10/2004, 10h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo