Bonjour,
je reçois un ensemble de bytes sur mon port COM. J'aimerais afficher ces bytes en décimal dans une textbox :
si je reçois 1F, qu'il affiche 31 dans la textbox.
Pouvez-vous m'aider?
Merci à vous ;-)
Bonjour,
je reçois un ensemble de bytes sur mon port COM. J'aimerais afficher ces bytes en décimal dans une textbox :
si je reçois 1F, qu'il affiche 31 dans la textbox.
Pouvez-vous m'aider?
Merci à vous ;-)
Code : Sélectionner tout - Visualiser dans une fenêtre à part int decValue = int.Parse(hexValue, System.Globalization.NumberStyles.HexNumber);
Retrouvez moi sur :
Mon Espace Developpez.com-------------------------------
Dvp.NET, une librairie open-source de composants .NET
Mon blog: Up there in the code----------------------------
Twitter: NatMarchand
Ma société: So@t
Showrizo : Suivez votre planning de séries télé sous Windows 8
Si tu as un tableau de bytes alors j'ai remarqué que ToString te renvoi la valeur décimal.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 byte[] bi = new byte[] {0x1F}; foreach (Byte b in bi) Console.WriteLine(b.ToString());
voila,
j'ai un tableau de bytes, que je sépare par la suite pour les mettre dans une textbox.
J'affiche donc chaque cracatères à l'écran.
longueur_lue = 1.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 string Temp_Interieur = msg.Substring(0, longueur_lue); // donnée isolée de la 0 en prenant 1 donnée (1 byte) string Temp_Exterieur = msg.Substring(1, longueur_lue); // donnée isolée de la 1 en prenant 1 donnée (1 byte) string Lum_Interieur = msg.Substring(2, longueur_lue); // donnée isolée de la 2 en prenant 1 donnée (1 byte) string Lum_Exterieur = msg.Substring(3, longueur_lue); // donnée isolée de la 3 en prenant 1 donnée (1 byte) string Valeur_Battery = msg.Substring(4, longueur_lue); // donnée isolée de la 4 en prenant 1 donnée string Valeur_Signal = msg.Substring(5, longueur_lue); // donnée isolée de la 5 en prenant 1 donnée
Donc pour les convertir en valeur décimale, je dois les encoder les bytes reçus sur port com dans un tableau de byte, et pas un tableau de string...c'est ça?
Voila, comment je recevais mes données précédement sur mon port COM:
comment transformer la valeur "value" en byte? Quand je met
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 private void port_DataReceived(object sender, SerialDataReceivedEventArgs e) { while (serialPort1.BytesToRead > 0 && serialPort1.BytesToRead < 6) { char[] buffer = new char[6]; int bytes_read = serialPort1.Read(buffer, 0, buffer.Length); string value = new string(buffer); safeInput(value); } serialPort1.DiscardInBuffer(); }
on me dit que l'on ne peut convertir un tableau en variable...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 byte value = new byte(buffer);
La méthode Read de la class SerialPort est surchargée, tu peux l'utiliser en lui passant en paramètre un taleau de byte plutôt qu'un tableau de char et éviter une conversion de type
merci....mais....heu....je découvre le c#...aussi
faire comme ceci ne va pas :
tu ferais comment?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 private void port_DataReceived(object sender, SerialDataReceivedEventArgs e) { while (serialPort1.BytesToRead > 0 && serialPort1.BytesToRead < 6) { char[] buffer = new char[6]; int bytes_read = serialPort1.Read(buffer, 0, buffer.Length); byte value = new byte(buffer); safeInput(value); } serialPort1.DiscardInBuffer(); }
pige pas'byte' does not contain a constructor thats takes 1 arguments
Partager