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.NET Discussion :

Envoie données balance Precia Molen


Sujet :

VB.NET

  1. #1
    Membre actif Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Points : 220
    Points
    220
    Par défaut Envoie données balance Precia Molen
    Bonjour,

    Alors voila je suis devant un probleme que je ne comprends pas bien .
    j'ai une balance connectée sur le port serie de mon PC (COM1).
    lorsque j'utilise hyperterminal(1200,7,E,1) et que j'envoie :
    [CTRL+A] puis [Entree]
    Qui correspond a SOH + CR + LF
    j'ai un retour de la balance . !

    Maintenant en VB.NET:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
     Dim comPort As IO.Ports.SerialPort
     Dim portData As String   'recupere les données du port COM
     Dim TempRetour As String 'valeur retour
     
     Dim MaTrame(2) As Byte 'trame envoyé
     
     comPort = New IO.Ports.SerialPort("COM1", 1200, System.IO.Ports.Parity.Even, 7, IO.Ports.StopBits.One)
     
     comPort.Handshake = IO.Ports.Handshake.None
     
     TempRetour = ""
     
            Try
     
                If comPort.IsOpen Then comPort.Close()
                comPort.Open()
     
                'MaTrame(0) = Convert.ToByte(&H1)
                'MaTrame(1) = Convert.ToByte(&HD)
                'MaTrame(2) = Convert.ToByte(&HA)
                'comPort.Write(MaTrame, 0, 3)
     
                comPort.Write(Chr(0) & Chr(13) & Chr(10))
                rep = comPort.ReadExisting()
    Et ben je ne reçois rien !

    Auriez-vous une ou plusieurs pistes ?

    Merci d'avance
    - La communication consiste a comprendre celui qui ecoute !
    - Qui veut faire quelquechose trouve un moyen, qui ne veut rien faire trouve une excuse

  2. #2
    Membre expérimenté Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Points : 1 455
    Points
    1 455
    Par défaut
    *un piste, je n'ai pas essayé*
    to send the ctrl key, it's "^", so ctrl R would be "^R"
    Sinon une autre piste pour les combinaisons de touches
    http://support.microsoft.com/kb/461998/fr

    Voici la liste des codes ASCIIs représentant les touches et combinaisons
    de touches du clavier

    TOUCHES CODE SEUL MAJ+ CTRL+ ALT+
    ....
    A 97 65 1 0;30
    donc ceci devrait suffir

  3. #3
    Membre actif Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Points : 220
    Points
    220
    Par défaut
    Citation Envoyé par hunteshiva Voir le message
    donc ceci devrait suffir
    Merci pour ta reponse.
    ça ne fonctionne pas.
    Il faut que j'envoie(ref la documentation) : SOH + CR + LF
    ce qui fait en Hexa : 01 0D 0A

    Mais rien !
    - La communication consiste a comprendre celui qui ecoute !
    - Qui veut faire quelquechose trouve un moyen, qui ne veut rien faire trouve une excuse

  4. #4
    Membre expérimenté Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Points : 1 455
    Points
    1 455
    Par défaut
    P-e une mauvaise lecture de la doc *mon niveau d'anglais est pas terrible*

    CTRL+C 's equivalent is 3

    send it to comport using chr(3) function
    An ASCII chart will tell you that, for instance, Ctrl-A is 1, Ctrl-B is 2, Ctrl-C is 3, 'A' is 65, and so on.
    D'aspres ces deux petites sources je dirais que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ' Envoie de Ctrl-A
    comPort.Write(Chr(1))

  5. #5
    Membre expérimenté Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Points : 1 455
    Points
    1 455
    Par défaut
    J'avais pas remarqué avant mais tu dit:
    Citation Envoyé par Elwe31 Voir le message
    ce qui fait en Hexa : 01 0D 0A
    et tu code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    comPort.Write(Chr(0) & Chr(13) & Chr(10))
    c'est pas ça plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    comPort.Write(Chr(1) & Chr(13) & Chr(10))

  6. #6
    Membre actif Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Points : 220
    Points
    220
    Par défaut
    Oui, c'est bien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    comPort.Write(Chr(1) & Chr(13) & Chr(10))
    Et ça ne fonctionne pas ! je ne reçois rien !
    - La communication consiste a comprendre celui qui ecoute !
    - Qui veut faire quelquechose trouve un moyen, qui ne veut rien faire trouve une excuse

  7. #7
    Membre actif Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Points : 220
    Points
    220
    Par défaut
    Eurêka !! j'ai trouvé !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    comPort.Write(Chr(1) & Chr(13) & Chr(10))
    Threading.Thread.Sleep(500)
    portData = comPort.ReadExisting()
    - La communication consiste a comprendre celui qui ecoute !
    - Qui veut faire quelquechose trouve un moyen, qui ne veut rien faire trouve une excuse

  8. #8
    Membre expérimenté Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Points : 1 455
    Points
    1 455
    Par défaut

    la je suis a court d'idées

    tu a essayé toutes les possibilités que je t'ai données?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ' Envoie de Ctrl-A
    comPort.Write(Chr(1))
    ' Envoie de Ctrl-A
    comPort.Write("^A")
     
    ' Attention je viens de remarquer qu'il te manqué ENTER pour valider ta trame
    autre idées:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim CTRL_A as string = Keys.Control And Keys.A
    Dim ENTER as string = Keys.Enter

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

Discussions similaires

  1. Communication avec balance precia molen i20
    Par juju1988 dans le forum Langage
    Réponses: 21
    Dernier message: 28/05/2015, 16h50
  2. Réponses: 36
    Dernier message: 05/08/2012, 01h34
  3. Pb envoi donnée MySQL
    Par iceman2001 dans le forum Requêtes
    Réponses: 4
    Dernier message: 31/01/2007, 16h31
  4. [débutante] Envoi données et affichage
    Par Sapphire77 dans le forum Services Web
    Réponses: 117
    Dernier message: 08/02/2006, 03h03
  5. Envoi données
    Par Ben42 dans le forum Langage
    Réponses: 7
    Dernier message: 25/01/2006, 10h11

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