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 - Problème de lecture sur port série


Sujet :

VB.NET

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2011
    Messages : 4
    Points : 1
    Points
    1
    Par défaut SERIALPORT - Problème de lecture sur port série
    bonjour,

    Je viens de passer 2 jours sur le net à chercher pourquoi mon bout de code ne fonctionne pas.

    je doit développer une application qui reçoit à partir d'un pied à coulisse connecté sur le port série les informations de mesure.

    je teste la lecture avec le code suivant:

    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
     
    Public Class Form1
     
        Dim returnstr As String = ""
     
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
            SerialPort1.Open()
            AddHandler SerialPort1.DataReceived, AddressOf Receiver
     
     
        End Sub
     
        Private Sub Receiver(ByVal sender As Object, ByVal e As SerialDataReceivedEventArgs)
     
            Dim Incoming As String
            Dim sp As SerialPort = CType(sender, SerialPort)
     
            Dim counter As Integer = SerialPort1.BytesToRead
     
            Select Case e.EventType
                Case SerialData.Chars
                    Incoming = sp.ReadLine()
                    returnStr &= Incoming
                    Me.Invoke(New MethodInvoker(AddressOf Display))
     
                Case SerialData.Eof
     
                    'Me.Invoke(New MethodInvoker(AddressOf parseXML))
     
            End Select
     
        End Sub
     
        Private Sub Display()
            TextBox1.Text = returnstr
        End Sub
    End Class
    Le programme ne passe jamais dans la méthode "DataReceived". et pourtant, tester avec l'outil "Comtestserial" de Microridge, le pied à coulisse envoie des données.

    Je ne sais pas ou chercher,
    si quenlqu'un peut me donner une piste

    Merci à tous

  2. #2
    Membre expérimenté Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Points : 1 455
    Points
    1 455
    Par défaut
    Bonjour,

    je ne vois nul part dans ton code où tu lit les data qui arrivent...
    Normalement c'est l'event suivant qui permet de lire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
            'This event will Receive the data from the selected COM port..
        End Sub

    Le soucis vient d'ici je pense,
    au chargement de ton formulaire, tu ouvre ton SerialPort
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
            SerialPort1.Open()
    le soucis c'est que Open est fait pour écrire...
    donc tu te prépare à écrire et en même temps tu veux lire les data qui arrivent *impossible je dirais*

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2011
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    bonjour,

    déjà merci de ta réponse.

    normalement c'est le code suivant qui doit intercepter les remontées du port série.

    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
     
       Private Sub Receiver(ByVal sender As Object, ByVal e As SerialDataReceivedEventArgs)
     
            Dim Incoming As String
            Dim sp As SerialPort = CType(sender, SerialPort)
     
            Dim counter As Integer = SerialPort1.BytesToRead
     
            Select Case e.EventType
                Case SerialData.Chars
                    Incoming = sp.ReadLine()
                    returnStr &= Incoming
                    Me.Invoke(New MethodInvoker(AddressOf Display))
     
                Case SerialData.Eof
     
                    'Me.Invoke(New MethodInvoker(AddressOf parseXML))
     
            End Select
     
        End Sub
    pour ce qui est du Open je ne vois pas d'autres méthode pour activer le port!!

    tu penses à quel fonction pour démarrer la lecture ?

  4. #4
    Membre expérimenté Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Points : 1 455
    Points
    1 455
    Par défaut
    Aucune,
    il détecte automatiquement l'arrivée de paquets et active l'evenement SerialPort1.DataReceived

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2011
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Non avec ou sans ouverture du port je ne reçois rien sur le COM.
    le programme ne passe pas dans le datareceived.

    Je ne vois pas ce qui cloche.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bonjour,
    j'ai le meme probleme. alors que sous Vb6 cela marche tres bien.
    auriez vous resolu le probleme?
    Merci.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2011
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Au sein de Visual Studio je n'ai pas trouvé de solution.
    j'ai acheté le composant ActiveComport qui fonctionne parfaitement bien

    le lien :
    http://www.activexperts.com/serial-port-component/

  8. #8
    Membre expérimenté Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Points : 1 455
    Points
    1 455
    Par défaut
    Citation Envoyé par assadhouna Voir le message
    Bonjour,
    j'ai le meme probleme. alors que sous Vb6 cela marche tres bien.
    auriez vous resolu le probleme?
    Merci.
    Quel problème?
    'Serial Port' fonctionne très bien pour l’émission de données ainsi que pour la réception

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

Discussions similaires

  1. Problème de lecture sur port série
    Par stpaul04 dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 29/12/2010, 17h27
  2. Lecture sur port série sous Linux
    Par DangerousBowlOfJelly dans le forum C
    Réponses: 6
    Dernier message: 28/03/2008, 17h00
  3. Pb lecture sur port série sous XP SP2
    Par ViveLesQuads dans le forum Delphi
    Réponses: 7
    Dernier message: 09/06/2006, 17h12
  4. Problème de lecture sur port COM
    Par Marthym dans le forum MFC
    Réponses: 10
    Dernier message: 11/04/2006, 15h36
  5. [C#] lecture sur port série
    Par Iokanaan dans le forum Windows Forms
    Réponses: 3
    Dernier message: 03/05/2005, 13h50

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