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:
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
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 ?

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