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

C++Builder Discussion :

Problème de lecture de trame sur port COM !


Sujet :

C++Builder

  1. #21
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    508
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Avril 2008
    Messages : 508
    Par défaut
    ben déjà, dans la ligne
    if( (nCarALire>0)&&(nCarALire<=nCountMax) )
    de la fonction de lectureCom, je ne vois pas l'utilité de tester nCarALire<=nCountMax car meme si c'est plus grand, tu ne demande qu'a lire sizeof(buf) caractères.
    !! et en plus, sizeof(lpBuf) va te retourner 4 et non pas 20, ça va te retourner la taille du pointeur, pas la taille du buffer alloué (tiens, je me demande si ton erreur vient pas de la d'ailleurs). car si tu ne demande qu'a lire 4 octets, t'aura jamais 18 de lu et donc, bouclage à l'infini.
    Je suis d'accord avec toi : pas besoin de tester "nCarALire<=nCountMax".

    Je viens de tester comme tu m'a dit mais c'est toujours pareil : soit 1 caractère de lu, mais pas les 18 octets attendus !

    Double

  2. #22
    Membre très actif Avatar de nirgal76
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2007
    Messages
    924
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 924
    Par défaut
    Citation Envoyé par petitclem Voir le message
    Je suis d'accord avec toi : pas besoin de tester "nCarALire<=nCountMax".

    Je viens de tester comme tu m'a dit mais c'est toujours pareil : soit 1 caractère de lu, mais pas les 18 octets attendus !

    Double
    sinon, me suis tromper ne pas lire nCountMax (qui vaut 20) octet mais 18 (puisque tu boucle si c'est <> de 18, donc en lire 20 c'est couillon

    ben sinon je viens de tester ton code (enfin, dans le thread, j'ai juste laissé la lecture de comm, j'ai virer tout ce qui est graphique dans le thread) et cela fonctionne, je lis bien 18 octets et je sors.
    Le probleme n'est pas la fonction de lecture de com.

    nb: j'ai fais le test avec une balance branchée sur le port de com série et qui envoi des trames en continu


    ClearCommError(hdl,&Errors,&Stat);
    nCarALire=Stat.cbInQue;

    il y a quoi dans nCarALire juste avant l'appel a readfile ?

  3. #23
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    508
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Avril 2008
    Messages : 508
    Par défaut
    Et bien si cela ne vient pas de la lecture alors cela vient de plus haut : de l'ouverture du port alors ?

    C'est fou quand même, je n'arrive pas à cerner le problème : quand tout le code était dans le thread tout fonctionnait et maintenant il n'y a que des problèmes !!!


    Tiens dans "nCarALire", il y a "0" !!!

  4. #24
    Membre très actif Avatar de nirgal76
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2007
    Messages
    924
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 924
    Par défaut
    Citation Envoyé par petitclem Voir le message
    Et bien si cela ne vient pas de la lecture alors cela vient de plus haut : de l'ouverture du port alors ?

    C'est fou quand même, je n'arrive pas à cerner le problème : quand tout le code était dans le thread tout fonctionnait et maintenant il n'y a que des problèmes !!!
    Apres je sais pas, je ne peux t'aider sur un probleme que je ne constate pas :/.
    c'est sur que ton ouverture/initialisation du port com manque de test d'erreur
    Si le numéro de ton port de com est >=10 ne pas oublier d'ajouter "\\.\" devant. et si ce n'est pas le cas, ne pas le mettre.
    Bon courage ! (je retourne à mon metier un peu quand meme hein

    Nirgal76

Discussions similaires

  1. Problème de lecture de données sur le port USB
    Par lujacquet1 dans le forum C
    Réponses: 3
    Dernier message: 08/06/2015, 16h56
  2. Réponses: 0
    Dernier message: 26/09/2012, 17h49
  3. Problème de lecture sur port COM
    Par Marthym dans le forum MFC
    Réponses: 10
    Dernier message: 11/04/2006, 16h36
  4. Write puis read sur port com
    Par chourmo dans le forum API, COM et SDKs
    Réponses: 34
    Dernier message: 21/06/2005, 18h36
  5. Problème de reception sur Port COM
    Par Revan777 dans le forum C
    Réponses: 9
    Dernier message: 19/04/2005, 22h55

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