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:
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)
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 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![]()
Partager