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 avec le handler du TComPort


Sujet :

C++Builder

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 12
    Par défaut Problème avec le handler du TComPort
    Bonjour tout le monde

    J'ai un petit soucis avec le composant TComPort, j'aurais voulu utliser des fonctions API Windows pour purger les buffers pour fermer proprement le port COM, voilà ce que j'ai écrit pas exemple:

    FlushFileBuffers(ComPort1->Handle);
    PurgeComm(ComPort1->Handle,PURGE_RXCLEAR);

    Le problème est que les fonctions FlushFileBuffers et PurgeComm attendent un argument handler en (*void) et le handle donné par TComPort est un (int) alors forcément pas moyen de compiler le programme j'ai une erreur qui est logique.
    Comment fait-on pour résoudre ce problème de format de variable.

    A+ Pascal

  2. #2
    Membre Expert
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Billets dans le blog
    1
    Par défaut
    Salut
    en utilisant le casting tu résoudra aisément ton problème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    void* ComHandle=(void*)ComPort1->Handle;
    FlushFileBuffers(ComHandle);
    PurgeComm(ComHandle,PURGE_RXCLEAR);
    cdlt
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 12
    Par défaut
    Merci pour l'info, effectivement maintenant ça compile sans problème, mais je n'est pas résolu le problème final.
    En fait j'utilise le composant TComPort, qui fonctionne très bien même avec un port COM virtuel sur USB connecté à un interface FTDI. J'arrive à gérer toutes les configurations du port, c'est à dire, quand il n'y a pas de port du tout ( PC portable) quand le port est déjà ouvert, etc... . Le seul cas que je n'arrive pas à gérer, c'est quand on débranche et l'on rebranche le câble USB sur le PC, le soft ne plante pas, mais quand j'essaie de reprendre la main sur le port COM, genre fermeture ou ouverture, j'ai un message système windows qui apparait dans le genre "purge comm error" et autre, en fait je n'arrive pas à fermer proprement le port COM virtuel quand il y a eu une rupture de connexion USB, je ne sait pas s'il y a une solution à ce problème, mais je ne suis pas à l'abri de ce genre de déconnexion de câble.
    En attendant merci pour votre aide

    Pascal

  4. #4
    Membre Expert
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Billets dans le blog
    1
    Par défaut
    bonjour,

    une solution serait d'intercepter l'envoi de manière cyclique d'une commande sur le portCom telle un signe de vie
    et d'intercepter l'erreur dans un bloc try catch de manière a réinitialiser la connection (destruction,puis création d'une nouvelle instance de TComport)
    cordialement
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

Discussions similaires

  1. Problème avec TComPort
    Par Kristo2 dans le forum C++Builder
    Réponses: 9
    Dernier message: 26/09/2007, 16h07
  2. Problème avec TComPort
    Par bridy224 dans le forum C++Builder
    Réponses: 1
    Dernier message: 16/05/2007, 19h17
  3. Problème avec TComPort
    Par mesmin.sefelec dans le forum C++Builder
    Réponses: 3
    Dernier message: 25/01/2006, 15h35
  4. Problème avec event handler
    Par MASSAKA dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 15/11/2005, 09h31
  5. TComPort, problème avec RxOnChar
    Par davinout dans le forum Composants VCL
    Réponses: 5
    Dernier message: 03/06/2005, 08h25

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