Pages: [1]   Go Down
Author Topic: C#, Arduino und ein Byte dazwischen  (Read 662 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hey ihr,

ich google mir seit Ewigkeiten einen Wolf und komme nicht weiter. Dabei ist das Problem so simpel:

Ich möchte in C# ein Byte an meinen Arduino Uno schicken.

Was mir zuerst im Magen liegt: Ich kann mit serial.Write() wohl nur eine String-Variable verschicken. Oder ich bin zu dumm einen anderen Datentyp in die Klammer einzutragen.

Nehme ich jedenfalls String, sind es ja Buchstaben, die nach ASCII decodiert und als Byte versendet werden. Aus meiner 0 wird also eine 48, aha. Wär mir ja auch recht, dann nennt er im String meine "01000000" halt "@", was solls. Nur blöd, dass ASCII nur 7Bit kann. Ich also nicht mehr, als 127 darstellen kann.

Es kann doch nicht so schwer sein ein blödes Byte zu verschicken und im Arduino zu empfangen, mein Problem scheint so trivial zu sein, dass es denen dies können so wenig auffällt, dass niemand im großen Internet darüber stolpert :-(

Ich hoffe ihr habt die Lösung für mich und mein Problem.

Metti
Logged

Offline Offline
Edison Member
*
Karma: 21
Posts: 1419
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Evtl. so?
Code:
byte[] data = new byte[1];
data[0] = 0x42;
serial.Write(data, 0, 1);
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Klasse, das funktioniert, danke!

Kannst du mir vllt auch in Stichworten schreiben, was hier passiert?
Logged

Offline Offline
Edison Member
*
Karma: 21
Posts: 1419
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Na dann beschreibt der Linux Admin mal auf seinem Mac was bei C# passiert  smiley-lol

Also:
Code:
byte[] data = new byte[1];
Deklariert ein Array mit nur einem Eintrag vom Typ Byte.

Code:
data[0] = 0x42;
Hier wird in das einzige Feld des Arrays das Byte 0x42 (HEX 42) geschrieben

Code:
serial.Write(data, 0, 1);
Hier sagen wir dem serial-Objekt das es bitte das Array "data" mit nur einem Byte zur Ausgabe verwenden soll.

Das Ganze ist leider daher so umständlich, weil die Firma Winzig-Weich vergessen hat, die Methode Write() auch für ein einfaches Byte zu definieren :-)

Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Super, vielen Dank! Es hätte wohl noch "ein wenig" gedauert, bis ich selbst auf so eine Lösung gekommen wäre :-(
Logged

Pages: [1]   Go Up
Jump to: