Forum: PC-Programmierung String 2 ushort nach Datenübertragung


von mspmarkus (Gast)


Lesenswert?

Hi,
Ich suche jetzt schon den ganzen Tag und kann leider keine Lösung zu 
meinem Problem finden. Und das obwohl es so trivial klingt.
Auf MyCSharp dürfte anscheinend auch keiner auf die schnelle eine Lösung 
wissen, also versuche ich es mal hier. Ich werde den Tread natürlich 
sofort schließen wenn dort eine Antwort kommt.

Ich sende einzelne Bytes die über die serielle indem ich die Zahl auf 2 
Bytes teile
trans[0]=test1 & 0xFF;
trans[1]=test1 >>8 & 0xFF;
in einem mC von unsigned short int zu unsigned char convertiert werden.

Die Daten lese ich dann als String mit c# ein. Soweit kein Problem. Ich 
teile den String an den richtigen Stellen. Nun muss ich die die Bytes 
wieder zusammenfügen. Ich finde aber keine möglichkeit, aus dem String 
wieder Bytes zu machen ohne UTF8 oder ähnliches zu verwenden.

Also die Frage ist, wie kann ich meinen String aus 2 Zeichen wieder in 
ushort konvertieren?

Ich wäre euch sehr dankbar für Hilfe!

von Peter II (Gast)


Lesenswert?

mspmarkus schrieb:
> Die Daten lese ich dann als String mit c# ein. Soweit kein Problem.

doch das ist das Problem. Warum liest du ein String ein wenn kein String 
ankommt? Verwende Read oder Readbyte dann hast du ein byteerray. diesen 
kann man dann mit dem Bitconverter jeden Datentype umwandeln.

von Helmut L. (helmi1)


Lesenswert?

test1 = (ushort)trans[0] + (ushort)trans[1]<<8

von mspmarkus (Gast)


Lesenswert?

Mein Problem bei read war der Buffer. Ich kann nicht sagen, wie groß das 
Array seien wird... Ich sende 3 12 Bit Datenwerte mit 1000 Hz. Ist das 
ein Problem wenn ich den Buffer abfrage und bis zum einlesen kommen 
schon wieder Werte dazu?? Das könnte doch bei der Datenrate schon 
passieren oder? Deswegen habe ich readexisting verwendet... Bitte um 
Tipps wie das besser geht!

von Peter II (Gast)


Lesenswert?

ich versteh dein Problem nicht.

int i = com.BytesToRead;
byte a[] = new byte[i];
com.Read( a, 0, i );

von mspmarkus (Gast)


Lesenswert?

oh...
danke!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.