Forum: PC-Programmierung Visual Basic Int senden


von Franz (Gast)


Lesenswert?

Hallo liebe Forenmitglieder,
Ich habe eine Frage zu Visual Basic 2010.
Ich möchte gerne über die serielle Schnittstelle ein Int senden. Die 
Funktion, die bereits integriert ist, lässt jedoch nur Strings zu und 
konvertiert sie letztendlich auch in diese Format.
Wie bekomme ich es nun trotzdem hin, den blanken Integer Wert zu senden?
Ich wünsche euch allen schonmal einen guten Rutsch und viel Glück für 
das bevorstehende Jahr 2011.
Gruß

von Valentin B. (nitnelav) Benutzerseite


Lesenswert?

Wie wäre es mit der .toString()-Funktion und am anderen Ende atoi?
Also erst den Int in einen String und dann den String in einen Int?

Ansonsten könntest du ihn auch in eine Byte kodieren und dann einzeln 
senden, aber ich glaube das willst du nicht (umständlich).

Mit freundlichen Grüßen,
Valentin Buck

von Franz (Gast)


Lesenswert?

Hm.
Wäre es denn einfacher, ein Unsigned Char zu senden?
Gruß

von Arc N. (arc)


Lesenswert?

Valentin Buck schrieb:
> Wie wäre es mit der .toString()-Funktion und am anderen Ende atoi?
> Also erst den Int in einen String und dann den String in einen Int?
>
> Ansonsten könntest du ihn auch in eine Byte kodieren und dann einzeln
> senden, aber ich glaube das willst du nicht (umständlich).

Das wäre der normale Weg. Die Serielle kennt nur Bytes, also muss alles 
"aufgeteilt" werden.
Was ist an
1
 Dim resArray As Byte( ) = BitConverter.GetBytes(123456)
2
 serialPort.Write(resArray, 0, 4)
umständlich?

> Mit freundlichen Grüßen,
> Valentin Buck

von Frankie (Gast)


Lesenswert?

Arc Net schrieb:
> Dim resArray As Byte( ) = BitConverter.GetBytes(123456)
>  serialPort.Write(resArray, 0, 4)

Kann mir jemand genau erklären, wie das funktioniert.

Es wird zuerst ein Array erstellt. Aber was macht den der BitConverter 
und wieso schreibt man hinter dem res Array eine 0 und eine 4?

Vielen Dank für eure Hilfe.

von Oliver P. (Firma: UAS Merseburg) (olipunk)


Lesenswert?


von Frankie (Gast)


Lesenswert?

Also, der Bit Converter nimmt die Zahl und packt die in ein Array.

Dieses Array wird dann wieder auf dem Port ausgegeben. Hat die 0 und 4 
was mit den Feldern im Array zu tun?

von Oliver P. (Firma: UAS Merseburg) (olipunk)


Lesenswert?

Frankie schrieb:
> Hat die 0 und 4
> was mit den Feldern im Array zu tun?

http://msdn.microsoft.com/de-de/library/ms143551(v=VS.80).aspx

Offset + Länge! Steht alles da!

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.