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
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.
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
mit "Me.Send(Chr(mmm)+Chr(nnn)+Chr(...))" funzt nicht serialportmonitor sagt 0A 28 28 10 bzw .((.
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
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
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
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
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.