Hallo MK,
Zitat:möchte ich meine ASCII-Code in Hexadezimalzahl konfertieren der Befehl sieht so aus
<SOH>GETS05V00FFFF<EOT> und ich würde ihn gerne in diese Form bekommen 01 47 45 54 53 30 35 56 30 30 46 46 46 46 04 aber bei mir sieht es immer nur so aus: 3C 53 4F 48 3E 47 45 54 53 30 35 56 30 30 46 46 46 46 3C 45 4F 54 3E
Dann machst du wohl was falsch.
Wenn du uns dein VI zeigen würdest, in dem du diese Umwandlung anstellst, könnte man auch glatt sagen, was genau falsch läuft...
Guck mal hier:
Hier nehme ich deinen Befehlsstring und hänge vorn und hinten die Steuerzeichen <SOH> und <EOT> an. Im Gegensatz zu dir verwende ich die Bytes so, wie sie sicherlich auch in der Anleitung zu deinem Gerät beschrieben sind - und nicht etwa, in dem ich einfach den Text ("<SOH>" = 3C53.4F48.3E) dort hinschreibe... Manchmal ist es wirklich hilfreich, sich erst die Anleitung zu einem Gerät durchzulesen!
Zu deiner Originalfrage:
- Ich sehe bisher keinen Grund für irgendeine Umwandlung. Stelle lieber den Anzeigemodus der String-Controls/-Indicators auf Hex um (wie im gezeigten Snippet), dann hast du schon alles, was du brauchst. Um die Werte zu verabeiten, gibt es schließlich noch String-Funktionen wie FormatIntoString oder ScanFromString!
- Dein VI enthält keinerlei Wartezeiten. Entweder fragt deine Schleife ungebremst zwei Buttons ab (was sinnlos ist) oder es wird so schnell der serielle Port abgefragt, dass du keine vernünftige Antwort bekommen wirst. Es gibt übrigens 2 sehr gute mitgelieferte Beispiele zum Umgang mit der serielle Schnittstelle, ich würde dir hier das "Advanced Serial Read & Write" empfehlen. Außerdem gibt es hier unzählige Threads, die sich auch mit der seriellen Schnittstelle beschäftigen: die solltest du dir vielleicht auch anschauen...
Tipp:
Es schadet nicht, wenn man vor dem Upload eines VIs mal den Aufräumknopf betätigt...