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 6 et antérieur Discussion :

Detection d'evenement sur msComm


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 5
    Par défaut Detection d'evenement sur msComm
    Bonjour et tous mes voeux pour 2007

    Sur une forme j'ai un control msComm et dans l'evenement OnComm je capture des données du port serie
    La je n'ai pas de soucis mais l'electronique qui m'envoi ces données ne peux pas m'envoyer un code de fin de trame.

    Il y a t-il un moyen de savoir avec un peu de code dans un timer par exemple de savoir si il n'y a plus d'evenement sur mscomm pour reinitialiser ma form

    Project en VB6

    Cordialement Pascal

  2. #2
    Membre expérimenté Avatar de AdHoc
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 245
    Par défaut
    bonjour,
    Tu veux quoi exactement ? mettre une sorte de time out (par exemple 5 secondes) après le dernier oncomm ? C'est assez simple, si ton controle timer n'est pas démarrer tu le démarre, tu initialise ta date de demarrage du décompte à chaque oncomm et à chaque coup de timer tu regarde si ton time out est dépassé.
    Est ce que tu as un moyen de savoir si une trame est correcte (taille, debut,données completes etc) ? sinon j'ai peur que quoique tu fasse, tu ne puisse jamais etre sur d'avoir toutes les infos surtout si l'interval entre les trames est variable.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 5
    Par défaut
    Bonsoir
    Je ne veux pas controler si mes trames sont corrects c'est ok ca
    Voila ce qui se passe
    Des que l'electronique commence a balancer des trames il y en a pour une dizaine de secondes environ ,l'espace entre les trames est variable ,j'ai un octet de debut + un de fin que je controle et je n'ai pas de probleme.
    c'est des que l'electronique ne passe plus rien je veux remetre la form a zero donc j'avais pensé faire ceci
    a la premiere trame recu
    -demarrage du timer
    acquisition des autres trames pendant que la timer scrute si il y a toujours quelque chose sur le port com (c'est ce que je n'arrive pas a faire)
    des qu'il n'y a plus rien
    -remise a zero de la form
    -arret du timer

    Voila
    Cordialement Peter

  4. #4
    Membre expérimenté Avatar de AdHoc
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 245
    Par défaut
    cela devrait ressembler à ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub MonTimer_Timer()
      static dtDerniereTrame as date
      if MonPort.InBufferCount > 0 then
        dtDerniereTrame = Now
        sTrameRecue = sTrameRecue & MonPort.Input
        call vTraitementTrame(sTrameRecue )
      else
        if datediff("s",Now,dtDerniereTrame ) > TIME_OUT then
          call vInitForm()
        end if
      Endif  
    End Sub

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 5
    Par défaut
    Bonjour
    Merci adHoc pour ton code
    Je ne suis pas trop habitué a vb car je developpe avec un autre language mais je le teste ce soir et je te tiens au courant
    Cordialement

  6. #6
    Membre expérimenté Avatar de AdHoc
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 245
    Par défaut
    un petit truc que j'avais oublié, personnellement, développant pour des applications proches de l'info indus, je n'utilise plus l'évènement oncomm. En effet je me suis rendu compte que dans certains cas (appli très active), il ne se déclenche pas (1/1000). Dans ton cas, il faudra veiller à ce qu'il ne rentre pas en "collision" avec le timer.
    A+

Discussions similaires

  1. Detection d'evenements sur d'autres pages
    Par hajjaj dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 10/02/2010, 10h18
  2. [VB.net]detecter evenement sur checkbox dynamique
    Par manaboko dans le forum VB.NET
    Réponses: 5
    Dernier message: 18/12/2009, 07h52
  3. Detecter evenement sur iframe
    Par vraipolite dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/03/2006, 12h10
  4. Evenement sur les barres de défilement d'une ScrollBox
    Par Nico118 dans le forum C++Builder
    Réponses: 2
    Dernier message: 06/05/2004, 14h56
  5. [FLASH MX 2004] [ecouteur] evenements sur un clip
    Par marco_ dans le forum Flash
    Réponses: 2
    Dernier message: 30/04/2004, 13h28

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