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 :

[VB6] mscomm [FAQ]


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien
    Inscrit en
    Octobre 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Octobre 2003
    Messages : 41
    Par défaut [VB6] mscomm
    Bonjour à tous

    Voila mon problème :
    j' utilise le composant mscomm pour envoyer des données sur le port série. Ces données sont des valeurs hexadécimales (0A 10 1A etc...)

    Pourriez vous m'indiquer comment formater ces données pour les envoyer sur le port série (un exemple serait le bien venu).

    Merci d'avance pour vos explications!

  2. #2
    HPJ
    HPJ est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2003
    Messages : 260
    Par défaut
    Si ton MSComm est en mode binaire, convertit tes chaines hexa en octets:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim octet As Byte
    octet = Val("&h" & chaineHexa)
    Si ton MSComm est en mode texte, convertit tes chaines hexa en caractères:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim s As String
    s = Chr(Val("&h" & chaineHexa))

  3. #3
    Membre averti
    Homme Profil pro
    Technicien
    Inscrit en
    Octobre 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Octobre 2003
    Messages : 41
    Par défaut
    Désolé HPJ
    Mon MSComm est bien en mode binaire mais en utilisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim octet As Byte
    octet = Val("&h" & "0A")
    mscomm1.output = octet
    J'ai l'erreur suivante :
    error 380
    Valeur de propriété non valide

    Si tu as une idée?

  4. #4
    HPJ
    HPJ est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2003
    Messages : 260
    Par défaut
    Comme il est écrit dans l'aide de la propriété Output, tu ne dois pas envoyer un octet seul mais un tableau d'octets...

  5. #5
    Membre averti
    Homme Profil pro
    Technicien
    Inscrit en
    Octobre 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Octobre 2003
    Messages : 41
    Par défaut
    HPJ est ce k'il te serait possible de m'expliquer mon erreur par un exemple concret car je ne comprends pas du tout mon erreur et j'aimerai bien comprendre! merci d'avance pour ton aide.

  6. #6
    HPJ
    HPJ est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2003
    Messages : 260
    Par défaut
    Pour envoyer des données vers le composant MsComm en mode binaire tu dois affecter un tableau d'octets à la propriété Output.

    Tu dois convertir ta chaine de valeurs hexa en un tableau d'octets.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim chaine As String
    Dim tableau(0 to 2) As Byte 
    Dim i As Integer
     
    chaine = "1A0123" ' 3 octets
     
    For i = 0 to 2
       ' convertit chaque couplet de caractères hexa en une valeur entière
       tableau(i) = Val("&h" & mid(chaine, i * 2, 2))
    Next i
     
    MsComm.Output = tableau

  7. #7
    Membre averti
    Homme Profil pro
    Technicien
    Inscrit en
    Octobre 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Octobre 2003
    Messages : 41
    Par défaut
    Merci à toi HPJ. Ton aide m'a été très précieuse. Je te remercie pour toutes explications et ta rapidité à me répondre.

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

Discussions similaires

  1. Recuperer le numero de téléphone entrant en vb6 via mscomm
    Par anila dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 12/05/2009, 14h14
  2. VB6 et Mscomm Problème dans la Trame Reçue Modbus
    Par mat-tech dans le forum Automation
    Réponses: 13
    Dernier message: 01/10/2008, 19h55
  3. VB6 et Mscomm Problème dans la Trame Reçue Modbus
    Par mat-tech dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 29/09/2008, 17h46
  4. [VB6]:A quoi sert le MSComm?
    Par gaetan.tranvouez dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 12/06/2006, 13h02
  5. Réponses: 1
    Dernier message: 22/08/2002, 17h00

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