LabVIEWForum.de - Signaldarstellung aus 16bit Hex String

LabVIEWForum.de

Normale Version: Signaldarstellung aus 16bit Hex String
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo LabVIEWForum,

ich bin erst seit wenigen Tagen mit LabVIEW zugange und habe jetzt nach ewiger Suche in der LabVIEW Oberfläche keine Lösung zu meinem Problem gefunden.

Hier meine Ausgangssituation:
Ich empfange von meinem Spektrumanalysator über GPIB einen Hexstring aus 1000 Zeichen, den ich mir einfach als String anzeigen lassen kann (2C2C393D4342353C433C2B35...). Zwei Zeichen entsprechen einem Messwert von meiner 500 Pixel Anzeige des SA.

Wie kann ich den String in brauchbare Messwerte umwandeln? Und mit welchen Signalgraphen kann ich mir das Signal anzeigen lassen?

Wie man einen Array aus numerischen Werten in einer Tabelle speichert habe ich schon herausgefunden. Also wäre es auch praktisch, wenn die Messwerte nachher in einem Array vorliegen.

mfg
Bobby
Gibt es in diesem Forum keinen Editierknopf?
Ich meine natürlich einen 8bit String.
Hallo Bobby,

mit dem folgenden VI kannst du aus einem Datenstring 24-Bit Zahlen zurück umwandeln. Erzeugt dein System 16 od. 32 Bit Zahlen musst du es anpassen.

Grüße cnongs


LabVIEW Version 8.0
@cnongs: Dein Beispiel ist Evil:)Du hast pro Zahl drei Arrayoperationen mit Speicherallokation. Versuche immer ein Array von Anfang an genau so groß zu gestalten, damit du es nicht mehr ändern mußt, es aber gleichzeitig nicht zu groß ist. In deinem Fall ist das Array gegeben, aber es besteht keine Notwendigkeit, es pro Schleifendurchlauf dreimal zu verkleinern. Mein Beispiel unten ist um den Faktor 600 schneller, da ich einfach die Größe des Array nicht ändere.

snip09 [attachment=23553]
Lv82_img[attachment=23554]
Wie kommt ihr denn hier auf 24 oder 32bit? Die Frage trägt doch den Titel: "Signaldarstellung aus 16bit Hex String". Das entsprechende Stringformat ist 0000..FFFF, und die Konvertierung könnte z.B so aussehen:
[attachment=23555]
Ja stimmt Schrotti, deine Variante ist 600 mal besser und Lucki's bestimmt die ultimative coolWink
Das sieht alles auf jeden Fall sehr gut aus und wird mir sicher weiterhelfen. Ich werde morgen mal all eure Vorschläge nachvollziehen.

Eine Sache ist mir allerdings bei cnongs Lösung aufgefallen, wo ich Probleme hatte.
Und zwar bei der ersten Umwandlung vom Hexstring in bytes. So habe ich auch angefangen und ich glaube bei mir kam dann zwar ein array raus, allerdings mit den ASCII-Werten der Hexzeichen. Aus 0-9 wurde 30-39 und aus A-F wurde 65-70.
Ich habe zu Hause leider kein LabVIEW und kann erst morgen in das VI gucken und kann nicht sagen, ob der Teil danach diese Sache korrigiert.

Danke schonmal und bis morgen.
Mir fällt da noch eine einfachere Lösung mittels 2maliger Typumformung ein:
Mit der ersten Typumformung werden je 4 Zeichen zu einer U32-Zahl umgeformt. Das wird mit einer zweiten Umformung wieder rückgängig gemacht. Das Ergebnis sind wieder die gleichen Zeichen, allerdings gegliedet als Array zu je 4 Zeichen. Dieses Array läßt sich dann mit der Funktion Hexstring nach Zahl mit einem Rutsch konvertieren.
[attachment=23561]
Luckis erste Lösung hat sehr gut funktioniert. Vielen Danke an alle.
Ich habe meine derzeitige Version angehängt. Vielleicht werde ich die Berechnung der Schleifendurchläufe noch durch einen festen Wert ersetzen, da meine Stringlänge eigentlich auch konstant ist.
[attachment=23574]
' schrieb:Wie kommt ihr denn hier auf 24 oder 32bit?
Die Frage hat mich gar nicht interessiert. Ein Offtopicwäre angebracht gewesen.
Seiten: 1 2
Referenz-URLs