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

Delphi Discussion :

[tComPort] fermeture du port bloqué


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 065
    Par défaut [tComPort] fermeture du port bloqué
    Bonjour,

    J'ai un cas de figure assez tordu... Je vais essayer d'etre clair et concis:
    J'ai un périférique avec lequel je communique en RS232 à l'aide d'une DLL (qui gère la connexion de A à Z).
    J'ai envie d'automatiser la communication (au lieu de cliquer sur un bouton, lancer automatiquement la liaison).
    Pour ça, j'ai besoin d'ouvrir le port COM et de lançer régulièrement une commande... S'il y réponds, on lance la DLL.

    Seulement, la DLL ouvre elle même le port, je suis donc obligé de le fermer avant de la lancer... Et c'est là que ça bloque.

    IMPOSSIBLE de fermer le port suite à une lecture dessus, il doit y avoir des choses qui trainent... Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TfrmMain.cpMainRxChar(Sender: TObject; Count: Integer);
    var nb: Integer;
    begin
      nb := cpMain.ReadStr(ligne,maxCount); // Vide le tampon
      fermerCOM; // CA PETE ICI !!!
      lanceDLL();
    end;
    Qu'est ce qu'il se passe ?

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 343
    Par défaut
    il est peut être préferable avant de lancer un connexion d'avoir un flag qui te dit si le port et ouvert ou pas. Sinon une boucle tant que avec qui spool avec une temporisation pour tester si le port est libre...et une gestion d'erreur? je ne sais pas quelle message d'erreur te renvoi l'appli. Voila quelques pauvres idées...
    Bon code

  3. #3
    Membre éprouvé Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 065
    Par défaut
    Bonjour tatareau, et mercipour ta rapidité.

    En fait, on ne peut pas fermer la connexion dans une procédure dépendante du tComPort... Il faut qu'elle aille à son terme (je ne sais pas trop pourquoi).

    J'ai donc, dans cette procédure, lancé un timer qui fermera la connexion.

    C'es dommage, c'est du bricolage et il y a un court temps de latence mais ça marche !

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

Discussions similaires

  1. Envoyer mail port bloqué?
    Par jojo86 dans le forum Débuter
    Réponses: 14
    Dernier message: 11/09/2010, 16h28
  2. Fermeture de ports ouvert
    Par developpeur_mehdi dans le forum Développement
    Réponses: 2
    Dernier message: 28/04/2004, 14h27
  3. Fermeture de ports
    Par DalKiT dans le forum Développement
    Réponses: 5
    Dernier message: 17/01/2004, 16h23

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