Forum: PC-Programmierung HEX senden mit vb 2008


von danczi (Gast)


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

von Severino R. (severino)


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.

von danczi (Gast)


Angehängte Dateien:

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

von danczi (Gast)


Lesenswert?

mit "Me.Send(Chr(mmm)+Chr(nnn)+Chr(...))" funzt nicht

serialportmonitor sagt 0A 28 28 10 bzw .((.

von Ralf (Gast)


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

von danczi (Gast)


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

von Ralf (Gast)


Lesenswert?

Ich glaub jetzt kapier ich es so langsam...

Du gibst in eine Textbox "10 40 40 16" ein, und möchtest das dann auch 
als Hexwert senden?

Hab ichs richtig kapiert?

Ralf

von danczi (Gast)


Lesenswert?

ja richtig

von danczi (Gast)


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

von Ralf (Gast)


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

von danczi (Gast)


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

von Severino R. (severino)


Lesenswert?


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.