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 :

problème avec serial port


Sujet :

VB.NET

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2003
    Messages : 315
    Par défaut problème avec serial port
    Bonjour,
    j'Essaie de lire le poids d'une balnace connectée à mon PC.
    J'utilise le component SerialPort, voici une partie de ma méthode pour trouver le poids:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     Me.SerialPort.Open()
                If SerialPort.IsOpen Then
     
                    SerialPort.Write(READ_SCALE & vbCrLf)           
     
                    myWeigh = "" 
     
                    myWeigh = SerialPort.ReadExisting()
     
     
    End if
    return myWeigh
    Lorsque j'Execute ce code, ça me retourne toujours 0. Par contre, lorsqu j'y vais en Debug, executant le code ligne par ligne, lèa il me renvoie le bon poids. (???)
    Auriez-vous une idée du pourquoi?

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Ah la la, jusqu'où on est prêt à aller pour surveiller sa ligne... ok, je sors

    Citation Envoyé par shirya Voir le message
    Lorsque j'Execute ce code, ça me retourne toujours 0. Par contre, lorsqu j'y vais en Debug, executant le code ligne par ligne, lèa il me renvoie le bon poids. (???)
    Problème de temporisation peut-être ? Si tu mets un Sleep de quelques millisecondes entre l'envoi de la commande et la lecture de la réponse, ça devrait le faire.

    Ou alors utilise une méthode bloquante pour la lecture : ReadExisting ne renvoie que les données qui sont déjà dans le buffer, alors que les autres méthodes de SerialPort (Read, ReadLine, ReadByte, ReadChar) bloquent tant qu'il n'y a pas de données à lire

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2003
    Messages : 315
    Par défaut
    bonjour, merci pour la réponse, j'ai essayer ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     System.Threading.Thread.Sleep(10000)
                    myWeigh = PacmedSerialPort.ReadExisting()
    mais rien èa faire, ça ne marche qu'en debug.
    et Lorsque j'utilise readLine à la place de readExisting, ça fait un timeout (ou ça gèle si je ne met pas de timeout)

    Comme si il ne recevait rien...pourtant, lorsque je fais readLine et que j'y vais en debug, il me renvoie bien le poid... je suis un peu perdue

  4. #4
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Par contre, lorsqu j'y vais en Debug, executant le code ligne par ligne, lèa il me renvoie le bon poids. (???)
    Je verrai un problème de droits d'accès?
    Essayer de lancer en mode administrateur.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2003
    Messages : 315
    Par défaut
    en mode administrateur?, je suis administrateur, je crois donc être dans ce mode....

  6. #6
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Sous Vista, il faut quand même faire exécuter en tant qu'administrateur.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2003
    Messages : 315
    Par défaut
    je suis avec xp.

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par shirya Voir le message
    je suis avec xp.
    donc rien à voir avec les droits d'admin a priori...

    Ca marche en debug en pas à pas, mais si tu le lances en debug sans faire de pas à pas (F5), ça donne quoi ?

  9. #9
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Dsl pour la suggestion sur les droits, j'avais lu le post trop vite (je croyais que çafonctionnait bien sous VS et mal si on lançait l'exe hors VS).

    Essaye d'insérer un Application.DoEvents() entre 2 sleep avant le read.

    Sinon lancer un timer après le write, et faire le read dans l'event du timer!

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2003
    Messages : 315
    Par défaut
    re bonjour, oui, ça marche en debug pas à pas, mais pas lorsque je fais F5.

  11. #11
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par shirya Voir le message
    re bonjour, oui, ça marche en debug pas à pas, mais pas lorsque je fais F5.
    OK, c'est bien ce que j'avais cru comprendre, et c'est ce qui me faisait penser à un problème de temporisation. A mon avis, quand tu lances sans faire de pas à pas, ça va trop vite et le port série n'a pas le temps de renvoyer une réponse.

    Citation Envoyé par shirya Voir le message
    bonjour, merci pour la réponse, j'ai essayer ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     System.Threading.Thread.Sleep(10000)
                    myWeigh = PacmedSerialPort.ReadExisting()
    mais rien èa faire, ça ne marche qu'en debug.
    10 secondes, c'est peut-être un peu long pour le coup... essaie avec 1 seconde

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2003
    Messages : 315
    Par défaut
    J'Ai essayé, 1-2-3-4-5-6-7-8-9-10 secondes, rien à faire....

  13. #13
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par shirya Voir le message
    J'Ai essayé, 1-2-3-4-5-6-7-8-9-10 secondes, rien à faire....
    bizarre... parce que à mon sens, la seule différence entre les 2 scénarios, c'est le timing... ou bien quelque chose m'échappe

  14. #14
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Graffito : Sinon lancer un timer après le write, et faire le read dans l'event du timer
    As-tu essayé cette solution avec un timer de x secondes?

  15. #15
    Membre averti
    Inscrit en
    Septembre 2010
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 13
    Par défaut Problème read existing
    bonjour, j'ai le même problème ! il y a de resultat pour ça ? merciii

  16. #16
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Sleep() aussi juste avant le SerialPort.Write ?

Discussions similaires

  1. problème avec un port série
    Par Invité dans le forum Composants
    Réponses: 7
    Dernier message: 15/03/2008, 23h05
  2. [Tableaux] problèmes avec serialize
    Par d0mii dans le forum Langage
    Réponses: 3
    Dernier message: 15/05/2007, 11h02
  3. [C#]Problème avec le port série sous Win98
    Par Polux63 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 29/09/2006, 09h14
  4. [XSLT] Problème avec la portée des variables
    Par sheura dans le forum XSL/XSLT/XPATH
    Réponses: 17
    Dernier message: 10/01/2006, 12h49
  5. Problème avec le port série sous Windows XP
    Par didou2dek dans le forum Composants VCL
    Réponses: 6
    Dernier message: 02/09/2003, 19h50

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