LabVIEWForum.de - Array 4 Elemente (Float) aufbrechen

LabVIEWForum.de

Normale Version: Array 4 Elemente (Float) aufbrechen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hey,

ich erhalte per UDP ein Array, welches 4 Floatzahlen enthält. Das ganze sieht so aus:

Daten[0] = 1.2
Daten[1] = 3.5
Daten[2] = 1.0
Daten[3] = 0.0

Jetzt möchte ich die Zahlen jeweils anzeigen lassen können bzw. später auch visualisieren. Gibt es eine Funktion womit ich das Array direkt entschlüsseln kann und in die vier Elemente aufbrechen kann?

EDIT: Im Anhang sind zwei Bilder wie ich das empfange, wenn ich es einfach mal ausgebe. Einmal als normale Anzeige und einmal als HEX Darstellung:

[attachment=57317]
[attachment=57318]


Grüße
Tobi
(11.02.2017 15:19 )Tobiii schrieb: [ -> ]Jetzt möchte ich die Zahlen jeweils anzeigen lassen können bzw. später auch visualisieren. Gibt es eine Funktion womit ich das Array direkt entschlüsseln kann und in die vier Elemente aufbrechen kann?
Nein, dafür gibt es keine einzelne Funktion, dafür brauchst du mindesten zwei (je nachdem wie die Zahlen in die Strings gewandelt wurden), z.B. ein "Typecast" und ein "Index Array".

Gruß, Jens
Hast du mir dafür vielleicht ein kleines Beispiel. Ich weiß nicht so recht wie ich das umsetzen muss. Hab den ganzen Samstag rum probiert bin aber auf keine Lösung gekommen.


Grüße
Wie hast du denn die Daten in einen Binär-String umgewandelt? Ich habe keine Lust, rumzuprobieren.
Im einfachsten Fall machst du genau das Umgekehrte.

Gruß, Jens

EDIT & P.S.: Könnte es sein, dass dein String nicht zu deinen Beispiel-Zahlen passt? Flop
Hey,

also wenn ich die das Array sende und die Daten als Integer sende dann erhalte ich das hier (Hex Darstellung):

[attachment=57323]
[attachment=57325]

Das bedeutet die Zahlen kommen in HEX egentlich richtig an (C für 12). Jede Zahl halt als 8 Bit. Jetzt müsste ich die Zahlen irgendwie aufsplitten so das ich den Wert einzeln und als Wert habe, den ich anzeigen kann.

Wenn ich das ganze aber in Float mache. Also das oben gezeigte Array mit float initialisiere dann kommt bei den Werten 12 das hier raus:

[attachment=57326]


Ich hab unten auch mal das aktuelle Projekt hinzugefügt.


Grüße
Tobi
Hallo Tobi,

warum nicht gleich ein sinnvolles Beispiel!?

So geht's:
[attachment=57328]
("native, host order" funktioniert auf einem Intel-Rechner auch, LabVIEW verwendet aber auch historischen Gründen "Big endian" per default!)

Zitat:die Daten als Integer sende dann erhalte ich das hier (Hex Darstellung) … Das bedeutet die Zahlen kommen in HEX egentlich richtig an (C für 12). Jede Zahl halt als 8 Bit.
Ein "Int" entspricht in LabVIEW einem I32.
Und jede Zahl enthält nicht nur 8bit, sondern 32! Das sind doch ganz klar 4 Byte pro Element!

Zitat:Wenn ich das ganze aber in Float mache. Also das oben gezeigte Array mit float initialisiere dann kommt bei den Werten 12 das hier raus
Ein "float" entspricht in LabVIEW dem Datentyp SGL.
Wie ein SGL aufgebaut ist, kannst du (u.a.) bei Wikipedia nachlesen!

Zitat:Ich hab unten auch mal das aktuelle Projekt hinzugefügt.
Das ist kein "Projekt", sondern nur ein simples "VI"!

Ändere mal dein Profil, sodass dort deutlich wird, dass du LV2016 benutzt!
Hallo Gerd,

vielen Dank für deine Lösung. So funktioniert es einwandfrei. Jetzt kann ich die Werte alle sauber einzeln Darstellen.
Kann geschlossen werden.



Grüße
Tobias
Referenz-URLs