Hi,
ich hab einen Timer der zählt von 118 auf 0 runter.
Hier die Funktion die die int in hex byte Werte umwandelt
private byte intToHexByte(int p)
{
// Umwandlung von int zu einem Hex Wert der als Byte an das Lauflicht gesendet wird
string valueHex = String.Format("{0:x}", UInt64.Parse(Convert.ToString(p)));
return Convert.ToByte(valueHex);
}
bei 111 = 6f kommt diese Fehlermeldung:
Fehlermeldung:
System.FormatException wurde nicht behandelt.
Message="Die Eingabezeichenfolge hat das falsche Format."
Kann mir jemand weiterhelfen, ich steh total aufm Schlauch.
Gruss
Simon
Hallo,
du kannst einen String wie 6F nicht einfach in Byte umwandeln 😉 Daher wird er dort meckern. Er geht normal von einem Decimal system aus also von 0-9 nich von 0-F. Deswegen musst du von String zu Byte auch Convertieren 😉
Gruß Daniel
Hallo Simon Heinzmann,
sehr merkwürdige Funktion, wo es doch ein return (byte)p;
tun würde.
herbivore
Hallo,
Zoooong das hab ich natürlich total übersehen ^^ Ja einfach nen Typecast auf den int und schon hast du dein Byte.. Aber du solltest vorher ein TryParse machen oder so weil Byte ja nur bis 255 kann. Nur als vorsicht 🙂
Gruß Daniel
return (byte)p;
Das "return (byte)p;" wandelt mir einen Dezimalen Integer in ein hexadezimales Byte um??
Gruss
Simon
Was ist denn der Unterschied zwischen einem dezimalen und einem hexadezimalen Byte??
Den Hexadezimalen Wert kannst du nur durch einen String darstellen.
Weeks of programming can save you hours of planning
Hi,
sowohl "Integer" wie auch "Byte" sind intern als Dual-Zahl repräsentiert.
In welchem Format sie bei uns auf dem Bildschirm erscheinen / in einen String kommen ...etc ist davon vollkommen unabhängig und kann - wie du auch schon selbst getan hast - mit zahlreichen Befehlen gesteuert werden.
String.Format("{0:x}"...
beste Grüße
zommi
Ich muss den hexadezimalen Wert über den seriellen Port senden
serialPortLauflicht.Write(new byte[] { 0x55, intToHexByte(led), intToHexByte(0), 0x0D }, 0, 4);
was ist denn der Unterschied zwischen
serialPortLauflicht.Write(new byte[] { 0x55, ...}, 0, 4);
und
serialPortLauflicht.Write(new byte[] { 85, ...}, 0, 4);
?
Weeks of programming can save you hours of planning
Hallo Simon Heinzmann,
die Antwort hast du schon bekommen. Es gibt keine HexBytes. Das sind aber Grundlagen. Schau es dir in einem Buch an.
herbivore