11.07.2010, 15:29
|
IchSelbst
LVF-Guru
Beiträge: 3.696
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
HEX-Code über Visa Schnittstelle ausgeben
' schrieb:also müßte ich wenn ich meinen hexcodestring zusammen setzte die entsprechenden formatierungsoptionen auswählen bzw. den Formatstring ansetzen oder wo wäre der günstigste zeitpunkt dafür?
Die Grundlage der Übertragung ist ja eigentlich ASCII, also "normaler, lesbarer Text", also z.B. "S300r". Das ist auch gut so.
Vorgehen kannst du wie du willst. Mehrere Wege führen zum Ziel. Ich würde, wolltest du also z.B. "S300" übertragen, wie folgt vorgehen (Ich bin nämlich ein Liebhaber des Formatierbefehls). "S" ist der Fehler, der kommt fest in den Formatstring. 300 ist der Wert des Parameters "S". Der ist variabel und ist daher das Argument im Formatstring: "S%dr". Das Format-Element hat also nur einen Eingang links unten. Das Ergebnis des Formatstrings ist dann bereits ein gültiger Wert, der über VISA übertragen werden kann. Sollte es tatsächlich notwendig sein "S300r" als HEX zu übertragen, machst du das wie im Bild: Zuerst den ASCII-String erzeugen und daraus dann den HEX-String mit der entsprechenden String-U8-Wandlung und der FOR-Schleife.
Solltest du Daten übertragen müssen, die nicht als ASCII darstellbar sind (also nicht z.B. per Tastatur eingebbar), dann generierst du ein U8-Array, das als Inhalt die zu übertragenden Daten hat. Das kann zwar etwas mühsam und auch kompliziert sein, geht aber immer. Guckst du Konvertierung String nach U8. Ist genau das selbe.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
18.07.2010, 20:11
|
IchSelbst
LVF-Guru
Beiträge: 3.696
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
HEX-Code über Visa Schnittstelle ausgeben
' schrieb:also ich gebe ein 53 oder 52 ein und möchte das diese Zahl so über die VISA-Schnittstelle weitergegeben wird, ich habe versucht das über die Schleife zu realisieren, aber er trennt mir die beiden Zeichen in zwei Einzelzeichen auf z.B. 35 33 oder 35 52, die restlichen Zeichen die den Wert enthalten werden korrekt übertragen.
Wenn du die beiden Zeichen "5" und "3" eingibst, werden die natürlich auch als zwei Zeichen übertragen.
Gibt halt statt "53" einfach "S" ein. "S" ist das, was du mit 53 haben willst.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
18.07.2010, 20:31
|
jojo2203
LVF-Gelegenheitsschreiber
Beiträge: 56
Registriert seit: Nov 2007
2011
2007
kA
09126
Deutschland
|
HEX-Code über Visa Schnittstelle ausgeben
Das ist das Problem. Bei der Eingabe von S geht das noch, aber ich habe eben auch Zeichen im Befehlsatz die sich nicht mehr über die Tastatur eingeben lassen, wie z.B. die 81 in Hex Acsii Darstellung. Wenn ich da in der Ascii Tabelle nachschaue, dann steht da eben nur ein Fragezeichen in einem schwarzen auf der Spitze stehenden Quadrat, für mich heißt das nicht eingebbar per Tastatur.
Und dafür betreibe ich den ganzen Aufwand ja.
MfG Joachim
|
|
|
19.07.2010, 21:07
|
jojo2203
LVF-Gelegenheitsschreiber
Beiträge: 56
Registriert seit: Nov 2007
2011
2007
kA
09126
Deutschland
|
HEX-Code über Visa Schnittstelle ausgeben
Ich glaube es funktioniert, hatte vergesse einen nachfolgende Übergabestelle auch umzustellen, aber es scheint jetzt mit der im Bild dargestellten Lösung zu funktionieren, umfangreichere Tests müssen aber noch folgen.
MfG Joachim
|
|
|
| |