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 :

Communiquer sur port COM avec MSCOMM (RS232) et VISCA (caméra sony)


Sujet :

VB 6 et antérieur

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2005
    Messages
    346
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 346
    Points : 119
    Points
    119
    Par défaut Communiquer sur port COM avec MSCOMM (RS232) et VISCA (caméra sony)
    Bonjour,

    j'essaie de communiquer avec une caméra Sony par le protocole VISCA sur le port COM. Je débute avec les communications sur le port Serie et je n'arrive pas à obtenir une réponse de la caméra.

    Voici les specifications de la caméra:
    Speed : 9.6/19.2/38.4 kbps
    Data bits: 8
    Start bit : 1
    Stop bit : 1/2
    Non parity
    Flow control using XON/XOFF and RTS/CTS, etc., is not supported
    .

    Avec un logiciel de débogage pour cette caméra, je peux voir les commandes et réponses qui transitent sur le port COM:
    Commande 1 : 88010001FF
    Réponse de la caméra : 90 41 FF
    Commande 2 : 8101045802FF
    Réponse de la camera: 90 51 FF
    J'essaie donc en VB d'envoyer ces 2 commandes afin d'obtenir une réponse, mais sans succès.
    Voici mon code:

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    Sub Form_Load()
    'Config du port
    With COMx(ID_COMx) 'configuration du controleur de port
    .CommPort = 4 ' Cam sur le COM4
    .HandShaking = 0
    .RThreshold = 1
    .RTSEnable = false 
    .Settings = "9600,n,8,1"
    .OutBufferSize = 1024
    .InBufferSize = 1024
    .SThreshold = 1
    .portopen=true
    End With
     
     
    ' Jusque là, pas d'erreur, donc le port s'ouvre bien...
     
    'Envoi de la premiere commande:
    COMx(ID_COMx).Output = "88010001FF"
     
    exit Sub
     
    Private Sub COMx_OnComm(Index As Integer)
    Select Case COMx(Index).CommEvent
    Case comEvReceive       ' Si on reçoit des données
            Tampon = Me.COMx(0).Input
            Call TraitementCommunication(Tampon, Index) ' Routine de traitement
    end select
    exit sub
     
    Sub TraitementCommunication(ByVal Tampon As String, ByRef SourceID As Integer)
     
     
    MsgBox Tampon
     
    End Sub
    Quelqu'un peut-il m'aider ou me mettre sur la voie ?

    Merci d'avance

    Eric

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    ton logiciel de débogage... n'affiche t'il pas des valeurs Hexadécimale..?

    ta chaine de caractére ne correspond pas à cela. ..

    voir :

    http://www.developpez.net/forums/sho...67&postcount=6

  3. #3
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Perso, en dehors de la remarque de bbil qui me semble effectivement à étudier, je mettrais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    COMx(ID_COMx).Output = "88010001FF" & VbCrLf
    pour mettre un caractère de fin de ligne à ta commande.
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Août 2005
    Messages
    346
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 346
    Points : 119
    Points
    119
    Par défaut
    Merci bbil,
    c'était effectivement quelque chose comme ça.
    J'ai fait: .output=chr(&h88)+chr(&h01)+[...]

    Et ça a marché.. ensuite la réponse n'était pas celle attendue mais c'est parce que j'avais mis le controle MSCOMM en mode binaire au lieu de texte.

    Maintenant ça fonctionne.
    Merci pour vos réponses.

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

Discussions similaires

  1. Communication avec modem GSM sur port COM
    Par cheasy dans le forum Langage
    Réponses: 16
    Dernier message: 05/06/2013, 10h32
  2. Reception et envoi sur port COM RS232
    Par foujino dans le forum Windows Forms
    Réponses: 2
    Dernier message: 12/02/2009, 09h34
  3. Capteur InfraRouge sur port com
    Par PoOky dans le forum Composants VCL
    Réponses: 12
    Dernier message: 12/01/2006, 15h31
  4. Write puis read sur port com
    Par chourmo dans le forum API, COM et SDKs
    Réponses: 34
    Dernier message: 21/06/2005, 17h36
  5. Problème de reception sur Port COM
    Par Revan777 dans le forum C
    Réponses: 9
    Dernier message: 19/04/2005, 21h55

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