HEX senden mit vb 2008

Gast #1106690
Lesenswert?

Hallo Leute!

Habe ein problem! ich habe mir ein beispiel code heruntergelden von:
http://www.activevb.de/tipps/vbnettipps/tipp0071.html
und wenn man auf den button klickt dann wir nur ein ascii code gesendet!
So jetzt meine frage: Wie muss ich den code umändern damit ich jetzt 
HEX-Zahlen senden kann? Weil wenn ich mir das dann mit dem 
serialportmonitor in der anfragenkonsole anschaue, dann schreibt er das 
was sende z.b. 10 40 40 16 was ich eigentlich in hex-format senden weil 
auf die "rechte seite" und nicht so wie ich weil auf die "linke seite"!


Hat jemand eine idee?

mfg
#1107342
Lesenswert?

danczi wrote:
> Weil wenn ich mir das dann mit dem
> serialportmonitor in der anfragenkonsole anschaue, dann schreibt er das
> was sende z.b. 10 40 40 16 was ich eigentlich in hex-format senden weil
> auf die "rechte seite" und nicht so wie ich weil auf die "linke seite"!

Ein Screenshot würde helfen zu verstehen, was da auf der "rechten seite" 
und "linken seite" steht.

Jedenfalls kannst Du es versuchen mit:
 Me.Send(Chr(mmm)+Chr(nnn)+Chr(...))

wobei mmm, nnn etc. deine "Hexzahlen" sind.
Gast #1107515
Lesenswert?

im anhang der screenshot

so wie ich das verstanden habe steht "links" die werte in HEX und 
"rechts" die werte in ascii!!

ich könnte ja z.b. .@@. auch senden, steht dann auf der linken seite 
nicht 10 40 40 15 sondern irgendwas anderes

mfg
Angehängte Dateien:
Gast #1107533
Lesenswert?

Also, du sendest:

HEX: 10 40 40 16, raus kommt dabei .@@.

Du möchtest aber haben:

HEX: 31 30 34 30 34 30 31 36 -> 10404016

Hab ich das so richtig verstanden?

> ich könnte ja z.b. .@@. auch senden, steht dann auf der linken seite
> nicht 10 40 40 15 sondern irgendwas anderes
die beiden 40er werden dastehen, weil das dem @-Zeichen entspricht, die 
Punkte kommen je nach verwendeter Schriftart bzw. Terminal-Programm für 
alle Zeichen, die nicht darstellbar sind.

Ralf
Gast #1107552
Lesenswert?

also es ist so:

ich würde gerne  10 40 40 16 senden und ich weil auch haben das das dann 
bei serialportmonitor auf der linken also als HEX steht!

mit dem @ das das immer 40 ist das stimmt!


weil das tut das ich ja verwende sendet ja ascii d.h ich muss vorher im 
vb das 10 40 40 16 irgendwie umconvertieren in ascii dann wird gesendet 
und rein theoretisch müsste ja dann beim serialportmonitor ja dann auf 
der ascii seite .@@. stehen auf der der hex seite 10 40 40 16 oder??
aber wie convertiere ich das in vb von hex in ascii???


mfg
Gast #1107599
Lesenswert?

ich habe jetzt schon herausgefunden wie es mit zahlen funzt:


        Dim c() As Char = {Chr(&H10), Chr(&H40), Chr(&H40), Chr(&H16)}


aber wenn ich jetzt z.b. E5 senden will sagt serialportmonitor bei ascii 
"?" und bei hex "3F"

mfg
Gast #1107729
Lesenswert?

Also, wenn du eine Textbox für die Eingabe verwendest, dann hast du die 
Zahlen ja nicht direkt, sondern als Zeichen vorliegen, also '0' = 0x30, 
'1' = 0x31, usw.
Die Eingabe der Textbox ist ein String. Guck mal in der Hilfe zum 
FrameWork nach der Convert-Klasse. convert.toByte(string) dürfte helfen.
Du musst aus dem Text der Textbox immer die ersten beiden Zeichen 
auslesen, konvertieren und senden.
Das Auslesen der beiden Zeichen sollte mit der left-Funktion klappen.

Ralf
Gast #1107759
Lesenswert?

also das problem liegt nicht beim auslesen von der textbox,

in habe gelesen das die funktion char einen wertebereich von -127 bis + 
127 hat und darum kann ich keine buchstaben senden!
angeblich funzt unsigned char was einen wertebereich von 0 bis 255 haben 
soll, weiß aber nicht wie man das jetzt deklariert!

ist da was wahres dran?

mfg

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren