Bonjour,
Je suppose que :
1) tu as connecté une interface physique USB <=> RS232 sur un port USB de ton PC.
2) le pilote qui va bien est installé sur ton PC : vérifier dans le Gestionnaire de périphériques, tu dois voir USB Serial Port COMx dans Ports (COM et LPT) quand l'interface est connectée.
3) ton appareil est connecté à l'autre bout et qu'il est censé envoyer un petit message sur la liaison RS232 quand tu appuies sur le bouton (pas plus de 64 octets à la fois).
4) tu as vérifié que les paramètres RS232 sont cohérents. Les changer si nécessaire côté appareil ou dans la sub Openport où ils sont actuellement à 19 200 Bauds, 8 bits, 2 stops.
Tout ceci étant en place, tu dois alors :
1) lancer Openport suivi du nº de ton port, par exemple Openport 3
2) appuyer sur le bouton. L'appareil envoie le message qui est stocké dans l'interface
3) lancer Readport avec en paramètre une chaine de caractères, par exemple Readport texte
4) lire/afficher/utiliser la variable texte
tu peux rejouer 2) 3) et 4) et quand tu as fini, tu lance Closeport
Bonjour,
Merci pour ta réponse.
J'ai bien connecté l'appareil au PC via une interface USB/RS232.
J'ai testé la connexion à l'aide de l'HyperTerminal, je reçois bien les données lorsque j'appuie sur le bouton de mon appareil.
J'ai modifié la partie OpenPort pour coller à mon besoin (4 800 bauds, 7 bits...)
Seulement je suis un peu perdue, je ne sais pas comment adapter la partie ReadPort pour lire le message reçu.
Voila ce que j'ai fait :
Public Function ReadPort(buf As String) As Boolean
Const BUFLEN& = 64
Dim rc&, lg&, i%
Dim rb(1 To BUFLEN) As Byte
ReadPort = False
rc = ReadFile(Handler, rb(1), BUFLEN, lg, 0)
If rc = 0 Then MsgBox "Read failed " & CStr(Err.LastDllError), vbCritical, "RS232": Exit Function
buf = "": For i = 1 To lg: buf = buf & Chr$(rb(i)): Next i
ReadPort = True
MsgBox (buf)
End Function
Et j'utilise la fonction de cette manière :
Sub test()
Dim texte As String
If Not OpenPort(3) Then ClosePort: Exit Sub
ReadPort (texte)
MsgBox (texte)
ClosePort
End Sub
Pas de message d'erreur mais les MsgBox sont vides.
Peux-tu m'éclairer sur les erreurs que j'ai fait ?
Merci !