Also ich will ein Byte durch einen Tastendruck oder Loslassen der Taste
verändern. Es gibt 8 mögliche Tasten und die verändern also jeweils ein
Bit im Byte. Das Byte wird hinterher über die Serielle Schnittstelle mit
der Funktion Write(); versendet. Ich habe mich für ein Byte Array
entschieden, weil ich ja keinen String mit dem Mikrocontroller auslesen
will sondern nur ein einziges Byte verschicken will. Die Funktion Write
bietet auch die Möglichkeit ein Byte-Array zu versenden und das kam
meinen Vorstellungen am nächsten.
Vielleicht könnt ihr mir ja sagen was ich genau falsch mache. Also die
Klasse in der das Byte-Array ist sieht so aus:
1 | public static class globalVar
|
2 | {
|
3 | public static SerialPort Port;
|
4 | public static byte[] Tastenkombination = { 0 };
|
5 | }
|
Hier ist das KeyDown-Event das KeyUp-Event sieht ebenfalls so aus:
1 | private void Form1_KeyDown(object sender, KeyEventArgs e)
|
2 | {
|
3 | if (e.KeyData == Keys.Up)
|
4 | {
|
5 | globalVar.Tastenkombination[0] ^= 0x08;
|
6 | }
|
7 | globalVar.Port.Write(globalVar.Tastenkombination[0].ToString());
|
8 | }
|
Jetzt will ich in der Abfrage der Taste noch einbringen ob die Taste
nicht schon den Wert geändert hat und dachte mir ich kann einfach mit "&
0x08" das Byte vergleichen und erhalte dementsprechend true oder false.
Wie mache ich diese Abfrage denn sinnvoll und richitg? Ist es für das
Senden mit der Seriellen Schnittstelle von Bedeutung ob es jetzt ein
String ist oder ein Byte als Datentyp? Für einen kleinen Test im
Hypterterminal habe ich einfach mal die Funktion .ToString(); verwendet.
Gruß Bän