1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    avril 2016
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : avril 2016
    Messages : 22
    Points : 11
    Points
    11

    Par défaut Evènement avec MSComm32.ocx

    Bonjour tous

    Je rencontre un problème agaçant (comme tous les pbms de développement d'ailleurs)

    Voila, il y a quelques mois j'ai développé un prog qui communique avec un appareil en J-Bus vian le port série (sortie USB et adaptateur FTDI 485)

    Pour ça j'utilise le composant MSCOMM.ocx
    Cela fonctionne très bien quand je lance mon exe compilé il y a quelques mois (le prog envoie des caractères et l'appareil répond, puis le prog traite la réponse ...

    Seulement, aujourd'hui, je dois appliquer une modif
    Donc je rentre dans mon code et le lance depuis VB, et cela fonctionne bizarrement :

    Le prog envoie bien les caractères sur mon MSComm1 quand le fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    with MSComm1
       if .PortOpen then
          .Output = "caractère à envoyer"
       end if
    end with
    L'appareil J-Bus reçois bien les caractères et renvoie sa réponse (je vois bien la communication sur les leds vertes et rouge de l'adaptateur FTDI, de la même façon qu'avec l'exe compilé
    Mais le composant MSComm1 n'a aucun évènement qui fonctionne
    Autrement dit dans ma routine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub MSComm1_OnComm()
     
       Select case MSComm1.CommEvent
          Case comEvReceive
             'traitement données reçues
          Case comEvSend
             'affichage données envoyées
       End Select
    End Sub
    aucun évènement n'est actionné !

    Je ne comprend pas
    il n'y a que cette instance de MSComm, donc cela devrait bien passer par ce gestionnaire d'évènement

    Merci de vos suggestions pour m'aider à trouver ce qu'il se passe

  2. #2
    Rédacteur/Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    4 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : décembre 2004
    Messages : 4 264
    Points : 8 933
    Points
    8 933

    Par défaut

    Salut
    Citation Envoyé par MSDN
    OnComm, événement
    La propriété CommEvent contient le code numérique de l'erreur ou de l'événement qui a généré l'événement OnComm. Notez que si la valeur 0 est attribuée aux propriétés RThreshold ou SThreshold, la récupération des événements comEvReceive et comEvSend, respectivement, est désactivée.

    Si vous attribuez la valeur 0 (valeur par défaut) à la propriété RThreshold, la génération de l'événement OnComm est désactivée lorsque des caractères sont reçus.

    Si vous attribuez la valeur 0 (valeur par défaut) à la propriété SThreshold, la génération de l'événement OnComm pour les événements de transmission de données est désactivée.
    Donc pour ton cas, il faut initialiser MSComm1RThreshold = 1 (ou plus car, nombre de caractères à recevoir avant génération de l'événement OnComm.)
    ProgElecT
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    avril 2016
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : avril 2016
    Messages : 22
    Points : 11
    Points
    11

    Par défaut

    Citation Envoyé par ProgElecT Voir le message
    Salut
    Donc pour ton cas, il faut initialiser MSComm1RThreshold = 1 (ou plus car, nombre de caractères à recevoir avant génération de l'événement OnComm.)
    Yesssss, super
    Merci ProgElect

    Entre nous, je ne sais pas ce qui a changé cette propriété de 1 en 0 puisque ça marchait, mais ...

    Bon WE à tous

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

Discussions similaires

  1. pb de license avec threed32.ocx
    Par MaxBoys dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 01/11/2010, 12h41
  2. Utilisation du Mscomm32.ocx avec un vbscript
    Par Abyss dans le forum VBScript
    Réponses: 6
    Dernier message: 23/05/2007, 12h38
  3. pb avec un ocx en vb6
    Par arsa dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 26/11/2005, 13h37
  4. [Vb.Net][ocx]->Pb diffusion d'appli avec un ocx
    Par kowabounga dans le forum Windows Forms
    Réponses: 4
    Dernier message: 12/10/2005, 16h48
  5. Mscomm32.ocx et c++ builder 6
    Par Maximilius dans le forum C++Builder
    Réponses: 6
    Dernier message: 05/03/2004, 20h49

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