LabVIEWForum.de
Problem Hexadezimal zu Dezimal Wandlung - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Problem Hexadezimal zu Dezimal Wandlung (/Thread-Problem-Hexadezimal-zu-Dezimal-Wandlung)



Problem Hexadezimal zu Dezimal Wandlung - Fraser-Island - 29.07.2015 09:03

Hallo Forengemeinde,

ich habe mir ein VI gebastelt, das es erlaubt das Messgerät welches an meinem Seriellen Port hängt auszuwerten.

Ich habe dazu das Beispiel VI von NI genommen und erweitert.
Das Gerät antwortet mit 3 Byte in der Form: low-middle-high. Ich drehe /spiegle nun den Hex string, damit ich diesen auswerten kann.
(Gerät: 3C A4 00 ergibt den richtigen Entfernungswert:00 A4 3C)

Ich möchte nun gern diese Hexadezimale Zahl in eine Dezimalzahl umwandeln, dies klappt bei mir leider nicht und das Ergebnis ist immer =0.
Wenn ich die hex Zahl allerdings manuell in den Programmteil eintippe stimmt die Zahl. Siehe VI: hex_to_dez (auch aus diesem Forum) Eine andere, simple Wandlungsmethode aus dem Forum habe ich nicht gefunden.

Würde mich sehr freue, wenn Ihr mir auf die Sprünge helfen könntet.
Vielen dank


RE: Problem Hexadezimal zu Dezimal Wandlung - GerdW - 29.07.2015 09:16

Hallo Fraser,

wenn du mit Bytes arbeiten willst, dann solltest du das auch tun - und nicht wieder nach String zurückwandeln!

Zwei Methoden:
[attachment=53730]

Zitat:Ich drehe /spiegle nun den Hex string, damit ich diesen auswerten kann.
Und das auch ziemlich umständlich. Warum holst du dir mit (einem!) IndexArray nicht einfach deine 3 Bytes aus dem Bytearray?

Zum Laser-VI:
- Baust du bei jeder Abfrage erneut eine VISA-Verbindung auf? Jedesmal?
- Warum BytesAtPort, wenn du mit TermChar arbeitest? Warum nicht einfach eine feste Anzahl Bytes abfragen?


RE: Problem Hexadezimal zu Dezimal Wandlung - Fraser-Island - 29.07.2015 09:37

Hallo Gerd,

danke für deine schnelle Hilfe. Wenn ich die obere, deiner Variante benutze, wie kann ich dann das Datenformat String einbetten? Der VISA read Baustein liefert ja ein string Output

Zum Drehen der Hex Zeichenkette habe ich gar keine Ahnung wie ich anders vorgehen könnte, könntest du mir das bitte nochmal kurz erklären?


RE: Problem Hexadezimal zu Dezimal Wandlung - GerdW - 29.07.2015 09:45

Hallo Fraser,

Zitat:Wenn ich die obere, deiner Variante benutze, wie kann ich dann das Datenformat String einbetten? Der VISA read Baustein liefert ja ein string Output
Wo brauchst du da einen String?
Ein String ist im Grunde nur ein "1D-Array of U8" (zumindest für LabVIEW), und in deinem Laser-VI wandelst du doch diesen String selbst schon in ein U8-Array um…

Zitat:Zum Drehen der Hex Zeichenkette habe ich gar keine Ahnung wie ich anders vorgehen könnte, könntest du mir das bitte nochmal kurz erklären?
Beispiele:
[attachment=53731]
Die Variante mit dem IndexArray funktioniert mit beliebigen Bytearrays (Bytes an beliebiger Position im Array), die Variante mit dem ReverseArray nur, wenn dein Array exakt die 3 Bytes enthält…


RE: Problem Hexadezimal zu Dezimal Wandlung - Fraser-Island - 29.07.2015 10:24

Wenn ich das VI entsprechend deinen Tipps anpasse und nicht von string in U8 und zurück in string konvertiere Wink danke dafür!! wo kann ich dann meine Länge oder meinen Hexadezimalcode auslesen? Der Wert aus dem array ändert sich je nach Ordnung (0, 1, 2)
bei z.B.: EA FA 00 ( ist 00 FA EA und entspricht 64234) das array ist bei 0=0, 1=250, 2=234


RE: Problem Hexadezimal zu Dezimal Wandlung - GerdW - 29.07.2015 10:27

Hallo Fraser,

Zitat:wo kann ich dann meine Länge oder meinen Hexadezimalcode auslesen?
Die Hex-Werte kannst du direkt auslesen, wenn du die Anzeige im "Bytes umgedreht"-Array auf Hexadezimal einstellst.
Um die Länge daraus zu erhalten, solltest du einfach den Tipp aus Beitrag #2 umsetzen…


RE: Problem Hexadezimal zu Dezimal Wandlung - Fraser-Island - 29.07.2015 10:34

ich habs 2hands

Danke für deine Hilfe und Geduld!