LabVIEWForum.de - String in Hexwert wandeln

LabVIEWForum.de

Normale Version: String in Hexwert wandeln
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Ich bekomme von einem Messgerät über VISA Read einen String (2 Byte), den ich aufbereiten muss, damit die Temperatur in Klartext angezeigt wird, z.B. entspricht der Hexwert 04CF der Temperatur von 23.1.

Das Problem ist allerdings, dass die zwei eingelesenen Bytes in der \ Code Anzeige so aussehen: \04\CF

Wie kann ich den String umwandeln, damit ich damit rechnen kann?

Mit Hexadecimal String to Number geht es nicht, der Backslash stört.
Danach zu suchen und zu ersetzen funktioniert auch nicht, da \04 ein Byte und \CF das andere Byte ist.
Hallo Frank,

das wurde schon so oft erläutert. Hast du auch gesucht?
[attachment=42490]

Anmerkungen:
- Dein Beispiel liefert "1231" als Ausgabe. Also enthalten die 2 Bytes noch Steuerinformationen (die Tausenderstelle) und liefert die Daten als Festkommazahl, da du noch durch 10 teilen musst. Aber das steht sicher im Manual deines Gerätes...

Zitat:Mit Hexadecimal String to Number geht es nicht, der Backslash stört.
Der Backslash stört überhaupt nicht: er ist ja gar nicht im String enthalten, sondern wird nur in der Anzeige eingeblendet!
Spielen wir jetzt heiteres Beruferaten?
Irgendwo in der Anleitung zu deinem Gerät (welches? Glas2 )wird doch wohl stehen, wie du die Antwort zu interpretieren hast.

Vielleicht ein Typecast des 2Byte-String in ein U16.
0x04CF ist Dezimal zumindest 1231...

Gruß, Jens

EDIT: Gerd war schneller. Wink
Mir ging es nur darum, wie ich aus "\04\CF" 1231 bekomme (Typecast ist die Lösung).
Die restliche Umrechnung ist klar und kein Problem: (1231-1000)/10= 23.1

Danke für die schnelle Hilfe.
Hallo Frank,

Zitat:entspricht der Hexwert 04CF der Temperatur von 23.1.
Zitat:Die restliche Umrechnung ist klar und kein Problem: (1231-1000)/10= 23.1
Für's nächste Mal: Dummerweise ist nur dir diese Umwrechnung bekannt. Wenn du von uns Hilfe erwartest und Beispiele für die gewünschte Umwandlung gibst, solltest du auch Beispiele wählen, die eineindeutig sind - oder die weiteren Parameter dieser Umrechnung benennen, um Verwirrung zu vermeiden...
(04.12.2012 16:53 )GerdW schrieb: [ -> ][quote]entspricht der Hexwert 04CF der Temperatur von 23.1.
[quote]
Das war wirklich extrem dämlich. Am Sinnvollsten wäre diese Angabe gewesen: Der Hexwert 04CF soll die Dezimalzahl 1231 ergeben. Dass daraus dann noch eine Temperatur skaliert wird, ist hier uninteressant.
(04.12.2012 10:39 )F.Bi schrieb: [ -> ]Mir ging es nur darum, wie ich aus "\04\CF" 1231 bekomme (Typecast ist die Lösung).
Die restliche Umrechnung ist klar und kein Problem: (1231-1000)/10= 23.1

Danke für die schnelle Hilfe.

Könnte auch noch sein dass die erste Ziffer effektief angibt um wieviele Dezimalstellen der Dezimalpunkt nach links geschoben werden soll. Damit würde diese grossartige von Vermutung abgeleitete Korrekturformel nur bis 99.9 Grad richtig funktionieren. Oder die Dezimalkorrektur könnte auch effektiv umgekehrt sein und die Dezimalverschiebung nach links angeben. Das kann halt nur das Manual beantworten.
Referenz-URLs