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 Discussion :

Lecture portRS232 en C++


Sujet :

Windows

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Lecture portRS232 en C++
    Hello,

    dans le cadre d'un projet il me faut communiquer avec une machine qui m'envoi des données via une liaison RS232 et récupéré sur un PC standard...

    Je me suis lancer dans une programmation C++ (devC++) et l'OS se trouve être malheureusement WINDOWS ! (pas le choix).

    Bref, aujourd'hui je rencontre des problemes de synchronisation dans la lecture de mon port COM.

    J'arrive à récupérer mes données à l'aide de flux de donnée type FILE *, et à l'aide de la fonction "fgets()".

    A noter que pour des raisons de commoditées, je simule la machine en utilisant un autre PC standard. En effet, je créais une session hyperterminal avec les configs de com qui vont bien et je relis les deux PC ensembles (lisaison RS232).

    Ainsi, je lance mon appli C++(sur PC recepteur), et j'écris un mot de donnée dans la fenêtre hyperterm du PC emetteur (simul de la machine).

    Mon problème est qu'à lecture du port par fgets, les données ne sont pas lues instantannement. Il y a un latence d'une minute environ avant que les données ne me soient remontées. Je pense que le fonction fgets attend que le flag liée au registre du port change, pour lancer la lecture...

    Si quelqu'un pourrait donc m'aider à comprendre se phénomène et par la même occasion me donnée une piste pour y pallier. Je ne suis pas contre de nouvelle idée, je ne suis pas figer au fonction standard (fgets...).

    Merci à vous

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Il y a pas mal de posts qui parlent de ce problème sur le forum C++

    fais une recherche dans ce forum avec les mots clé "lire" "port" "serie"
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci pour l'info il ya plein de sujet intéressant, mais rien ne correspond à ce que je recherche ...

    La plupart des sujets sur lecture de port sont décrit en VB ou delphi, mais pas en C ou C++

  4. #4
    Candidat au Club
    Inscrit en
    Mars 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Arf !!!

    J'ai trouvé une piste, mais qui néanmois reste à expliquer !!!

    Du coté PC récepteur, je me sui amusé à tout hasard de créer une session hyperterm, avec les configs de com qui vont bien.

    J'ai établit une communication entre les deux entitées, puis j'ai refermé la com du coté PC recepteur (jusque la, rien d'extraordinaire), seulement apres, j'ai relancé mon application et la !! comme par hasard les données de mon appli sont receptionnées instantannement ????

    j'ai fait la manip plusieurs fois et on s'apercoit donc que quand je viens configurer mon port à l'aide de l'hyperterm, cela me resoud le problème ...

    Pourtant, quand on configure un port Com, on peut en voir les caractéristiques du moment, en tapant la commande "mode" sous un shell DOS.

    Ainsi, à la base, je m'etais inspiré de ces configs pour configurer mon port au démarrage de mon appli, et à l'aide de la commande suivante :

    > system("mode com4 : baud=9600 parity=e data=7 to=ON xon=off octs=off dtr=on rts=on idsr=off")

    la fonction "mode" sous DOS permet de configurer le port comX. J'avais donc rentrer la même configuration que j'avais pu observé apres config du port sous l'hyperterms... seulement l'appli hyperterm doit configurer quelque chose en plus que je ne vois pas et ne peut configurer à l'aide de la commande "mode";

    Une idée ???


    Merci

  5. #5
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Citation Envoyé par bart_sims Voir le message
    La plupart des sujets sur lecture de port sont décrit en VB ou delphi, mais pas en C ou C++
    Dans le forum C++ ?!?!
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

Discussions similaires

  1. [ADO] Sauvegarde / lecture de recordset
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 20/09/2002, 16h54
  2. Lecture de fichiers ".WAV"...
    Par 0x4e84 dans le forum Langage
    Réponses: 2
    Dernier message: 03/09/2002, 09h43
  3. Pb Lecture de bitmap monochrome
    Par Loïc38 dans le forum C++Builder
    Réponses: 4
    Dernier message: 02/07/2002, 18h24
  4. Lecture d'une image bitmap
    Par Geronimo dans le forum x86 32-bits / 64-bits
    Réponses: 18
    Dernier message: 28/06/2002, 12h01
  5. [langage] Optimiser la lecture d'un fichier
    Par And_the_problem_is dans le forum Langage
    Réponses: 2
    Dernier message: 11/06/2002, 10h24

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