Salut,

je récupère des trame hexa sur le port série mais il n'y a que la fin de celle-ci qui m'intéresse. Le problème c'est que dans ces trames il y a des espace (ex:"03 00 02 A2 01 4A) donc pour récupère toute la trame je suis obligé de faire plusieurs fois la lecture du 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
Try
                Dim TrameRequete() As Byte = {&H3, &H28, &H2}
                SerialPort1.Write(TrameRequete, 0, 3)
                SerialPort1.Read(buffer, 0, buffer.Length)
                SerialPort1.Read(buffer, 0, buffer.Length)
                SerialPort1.Read(buffer, 0, buffer.Length)
                SerialPort1.Read(buffer, 0, buffer.Length)
                SerialPort1.Read(buffer, 0, buffer.Length)
                SerialPort1.Read(data1, 0, buffer.Length)
                SerialPort1.Read(data2, 0, buffer.Length)
 
                Dim s1 As String = Hex(data1(0))
                Dim s2 As String = Hex(data2(0))
                Dim s As String = s1 + s2
 
 
            Catch e As TimeoutException
            End Try
        End If
ensuite je veux récupérer les 2 derniers octets de la trame (avec la trame de mon exemple je veux récupérer 01 4A)
ensuite je voudrais que cette valeur soit convertie en double (donc 14A en hexa = 330 en décimale) mais j'ai essayé plusieurs solutions et j'arrive à rien à par avoir un string contenant la valeur hexa que je veux en décimale...

Donc est-ce qu'il y un moyen pour reduire le nombre de ligne pour lire le buffer ?
et comment obtenir ma donnée en décimale?

PS: j'ai déjà fait la même chose mais en C++, si quelqu'un est tenté de traduire le code en VB.net je peux le mettre