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

Windows Forms Discussion :

[VB.NET]Affichage d'un buffer SerialPort


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Yolak
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 341
    Par défaut [VB.NET]Affichage d'un buffer SerialPort
    Bonjour!

    Je communique avec une balance via le port série. J'utilise donc l'outils SerialPort (avec Visual Basic Express).

    Voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Private Sub SerialPortBalance_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPortBalance.DataReceived
            Buffer_Mesure_BALANCE = SerialPortBalance.ReadLine
            Call Traitement_Trames_BALANCE()
        End Sub
    La fonction Traitement_Trames-BALANCE est la suivante (dans un module):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        Sub Traitement_Trames_BALANCE()
            Dim MesurePoids As String
            Buffer_Mesure_BALANCE = Replace(Buffer_Mesure_BALANCE, " ", "")
            Buffer_Mesure_BALANCE = Replace(Buffer_Mesure_BALANCE, Chr(10), "")
            Buffer_Mesure_BALANCE = Replace(Buffer_Mesure_BALANCE, Chr(13), "")
            Buffer_Mesure_BALANCE = Replace(Buffer_Mesure_BALANCE, "g", "")
            Buffer_Mesure_BALANCE = Replace(Buffer_Mesure_BALANCE, ".", ",")
            MesurePoids = Buffer_Mesure_BALANCE
            Accueil.Label25.Text = MesurePoids
        End Sub
    A priori, le buffer devrait être placé dans le label25 non?
    Pourtant, là, rien ne s'affiche sur le label25!

    Pourtant:
    Quand je suis en debogage, ça m'indique que la trame a bien été reçue (MesurePoids=104,3)
    Quand je met une msgbox , ça fonctionne également.
    Quand j'ajoute cette fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Acceuil.Label25.Refresh
    , ça ne change rien !!

    Aidez moi s'il vous plaît!! Je ne trouve pas de tutos complets sur le port série!
    Et là je ne vois vraiment pas comment faire!

    Merci d'avance!

  2. #2
    Rédacteur

    Inscrit en
    Juin 2004
    Messages
    744
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juin 2004
    Messages : 744
    Par défaut
    Je ne comprends pas vraiment ton problème ?
    Avec le .refresh ça fonctionne non ?
    Envie de contribuer à la rubrique SharePoint ? Contactez moi par MP !

    SharePoint : http://sharepoint.developpez.com
    Mon site : http://lefortludovic.developpez.com
    Mon blog : http://www.consultpoint.net/blog

  3. #3
    Membre éclairé Avatar de Yolak
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 341
    Par défaut
    Ben non lol !!!
    Rien ne s'affiche!
    J'ai testé avec tous les contrôle (listbox,textbox,label,...) et rien n'y fait!

    Le pire c'est que tout fonctionne !! Le buffer est bien stocké dans le label car j'arrive a faire des calculs avec !!!

    J'ai même essayé avec

  4. #4
    Rédacteur

    Inscrit en
    Juin 2004
    Messages
    744
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juin 2004
    Messages : 744
    Par défaut
    Je vois deux raisons possibles :
    • La lecture du buffer bloque ton thread, dans ce cas ton application devrait être figée ---> fais un Application.doEvents()
    • Ton buffer est lu plusieurs fois : la première fois il a valeur correcte, puis il li une chaine vide donc ton label est vide au final. pour vérifier çela met une valeur par défaut sur ton label et tu verras si elle disparait.
    Envie de contribuer à la rubrique SharePoint ? Contactez moi par MP !

    SharePoint : http://sharepoint.developpez.com
    Mon site : http://lefortludovic.developpez.com
    Mon blog : http://www.consultpoint.net/blog

  5. #5
    Membre éclairé Avatar de Yolak
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 341
    Par défaut
    En fait j'ai déjà fait ça et sans résultat !!

    Ca ça change rien!

    Le label a déjà une valeur par défaut et rien ne se passe !

    N'y aurait-il pas une fonction qui force l'affichage ou une fonction qui permet de bloquer temporairement le thread du port série?

    Ton buffer est lu plusieurs fois : la première fois il a valeur correcte, puis il li une chaine vide donc ton label est vide au final. pour vérifier çela met une valeur par défaut sur ton label et tu verras si elle disparait.
    Quand je suis en débogage, que je met la souris sur la variable MesurePoids (sans cliquer ^^) ça m'affiche la trame que j'attend !!!

    J'ai également tenté de mettre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Accueil.SerialPort1.Close
    ET
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Accueil.SerialPort1.Dispose
    Et rien n'y fait !!

  6. #6
    Rédacteur

    Inscrit en
    Juin 2004
    Messages
    744
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juin 2004
    Messages : 744
    Par défaut
    Si tu éxécutes le code en pas à pas est ce qu'il passe par la ligne : label.Text = x (x contient la valeur du buffer ??)

    Il y passe une seul fois ?
    Envie de contribuer à la rubrique SharePoint ? Contactez moi par MP !

    SharePoint : http://sharepoint.developpez.com
    Mon site : http://lefortludovic.developpez.com
    Mon blog : http://www.consultpoint.net/blog

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

Discussions similaires

  1. [VB.NET] - affichage de webcontrols dynamiquement
    Par karibouxe dans le forum ASP.NET
    Réponses: 6
    Dernier message: 15/06/2005, 11h53
  2. [VB.NET] Affichage conditionnel dans un repeater
    Par NicoNGRI dans le forum ASP.NET
    Réponses: 4
    Dernier message: 07/02/2005, 12h58
  3. [CR.NET] affichage de toute les pages de l'état
    Par HULK dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 19/01/2005, 17h34
  4. Réponses: 2
    Dernier message: 29/11/2004, 12h13
  5. [vb.net] Comment vider un buffer ?
    Par mdc dans le forum Windows Forms
    Réponses: 4
    Dernier message: 16/12/2003, 15h43

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