2010-11-21 35 views
1

Salut à tous, j'essaie d'allumer un récepteur A/V avec une commande RS232 en utilisant le VB6 comm32. Pour l'activer, il est dit d'utiliserRS232c VB6 help

Command code Parameter code CR Code set example 
PW   ON    <CR> PWON<CR> 

Et voici mon code VB6 je l'utilise actuellement qui ne marche pas semblent fonctionner ...

MSComm.CommPort = 2 
MSComm.Settings = "9600,n,8,1" 
MSComm.PortOpen = True 

If Not MSComm.PortOpen Then 
    MsgBox "not opened" 
Else 
    MSComm.Output = "PWON" & Chr(13) 

    Do While MSComm.InBufferCount > 0 
     Text1.Text = Text1.Text & MSComm.Input 
    Loop 
End If 

Le recepteur ne tourne jamais sur. Que pourrais-je faire de façon incorrecte? J'ai vérifié pour m'assurer que le port COM était 2 et il est.

David

+0

Quel modèle de récepteur A/V utilisez-vous? Pouvons-nous jeter un coup d'oeil à la spécification? – PleaseStand

+0

L'A/V est un Marantz sr7005. Le PDF que j'utilise est celui-ci: http://www.filefactory.com/file/b45ce8b/n/Marantz_New_RS232C_Command_List-Receiver_All.pdf – StealthRT

+0

Est-il assis dans le tampon de sortie? Je ne me souviens pas du nom exact de la propriété à vérifier ... outputbuffercount ou quelque chose? En outre, vous avez désactivé le contrôle de flux, oui? Comme d'autres l'ont suggéré, commencez par travailler dans Hyperterminal. – Brad

Répondre

3

Vous êtes juste d'envoyer les caractères <CR> plutôt que d'un réel retour chariot (code ASCII 13). La documentation pour les périphériques série place souvent les noms des caractères de contrôle entre parenthèses (voir Wikipedia pour a list of them). Vous avez besoin de la ligne:

MSComm.Output = "PWON" & Chr(13) 

Il semble également que le code qui suit pour lire les données du port série doit être modifiée car si les données ne sont pas arrivés dans le tampon de port série encore, il lit rien. Jetez un oeil à Microsoft's example pour savoir comment faire. Vous pouvez décider d'arrêter la lecture une fois qu'une sous-chaîne particulière a été trouvée, une fois qu'un certain nombre d'octets ont été lus (Len fonction), etc.

+0

Hey merci pour la réponse idealmachine mais cela ne semble pas l'allumer, soit: o ( – StealthRT

+0

J'ai essayé ce code sur le site Web de MS mais toujours pas de chance: o ( – StealthRT

+0

Je viens aussi de poster le lien ci-dessus au format PDF du – StealthRT