Bonjour,
J'aurai besoin d'un petit coup de main à propos de l'utilisation du port série sous visual basic express 2008. Je précise que je suis débutant.
Je souhaite envoyer une trame de bytes à un appareil, puis recevoir des données qu'il est sensé m'envoyer. Voici un bout de code correspondant:
Je précise que je ne peux pour l'instant pas connecter l'appareil au port, donc impossible de tester la réponse. Mais j'aurais voulu voir le contenu du buffer actuel, pour voir si j'arrive bien à lire son contenu. Mais le programme plante au niveau de la conversion du type Byte en string. Pouvez vous me donner une solution, afin que je puisse afficher dans un label le contenu de mon buffer ?
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 'Déclaration de la trame de bytes Dim commande() As Byte = { &H2, &H1, &H43, &H57, &H47, &H54, &H32, &H3, &H0, &HD, &HA} If SerialPort1.IsOpen = False Then SerialPort1.Open() End If 'je récupère la taille du buffer du port tampon = SerialPort1.ReadBufferSize Label1.Text = "Taille de la mémoire tampon:" + CStr(tampon) + "octets" 'Création du fichier pour récupérer les données (de la taille de la mémoire tampon) Dim fichier_byte(tampon-1) As Byte 'Envoi de la commande sur le port SerialPort1.Write(commande, 0, 11) 'lecture de la réponse SerialPort1.Read(fichier_byte, 0, tampon) 'Conversion de fichier_byte en string Dim fichier As String = BitConverter.ToString(fichier_byte) Label2.Text = "Données reçues:" + fichier
Autre question, j'aimerais savoir comment réinitialiser le buffer du port, pour pouvoir lire des réponses à différentes commandes en étant sur de ne pas récupérer de vieilles données ? Quelle est la différence entre SerialPort1.Read et SerialPort1.ReadLine (j'ai cherché, mais n'ai pas compris) ?
Enfin, si vous avez des commentaires sur ma manière de procéder, n'hésitez pas, je suis totalement débutant. Merci d'avance
Partager