LabVIEWForum.de
Über String ein Object ansprechen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Über String ein Object ansprechen (/Thread-Ueber-String-ein-Object-ansprechen)

Seiten: 1 2


Über String ein Object ansprechen - Ragdar - 08.04.2009 10:24

Guten Morgen nochmal,

dieses mal ganz einfache Beschreibung, versprochenSmile

Hab ein Array (Ausgelesense Geräteantworten) das sieht so aus:

M0: 1500
M1: 200
M2: 4000
...

Nun hab ich auf meinem Frontpanel nummerische Anzeigeelemente mit Namen M0, M1, ... Diese sollen die Werte vom Array zugeteilt werden. Die Werte im Array sind nicht immer in der gleichen Reihenfolge aber das ist kein Problem.

Ich hab die Strings jetzt in zwei Teile aufgeteilt wobei ich dann den Wert und dien Namen bekomme. Also z.B String1: M0 String2: 1500

String 2 wandle ich in eine Zahl um und nun müsste ich, über String1 das nummerische Anzeigeelement "M0" auf meinem Panel ansprechen. Nur da weiß ich leider nicht weiter, und leider weiß ich auch keine geeigenten Suchbegriffe fürs Forum/GoogleSad

Was ich mir als Laie denke: Geht wohl über Property Node und Reference? Nur wie wandle ich den Label-String-Name in eine Reference um, oder gibts da was einfacheres?

Wieso das ganze?
Das Array ist sehr lang...

Danke!Smile


Über String ein Object ansprechen - oenk - 08.04.2009 10:35

Schau mal hier
So könntest du es machen.

In kurz:
GUI-Elemente nach label auslesen & reference speichern
Programmatisch auf Element mittels string zugreifen und Wert uebergeben


Über String ein Object ansprechen - Ragdar - 08.04.2009 11:23

<!--quoteo(post=70681:date=08.04.2009 , 11:35:25:name=<<oenk>>)--><div class='quotetop'>ZITAT(<<oenk>> @ 08.04.2009 , 11:35:25) [url=index.php?act=findpost&pid=70681][/url]</div><div class='quotemain'><!--quotec-->GUI-Elemente nach label auslesen & reference speichern[/quote]

Nur das ich es richtig verstehe:
Ich schreib mir ein Programm das mir die Bedienelemente (Label und Reference) in einen Cluster schreibt und aus dem Cluster kann ich dann für die Label auf die Reference zugreifen. Falls es wirklich so gemeint ist und nicht anders geht, dann wär das auf jeden fall ein großer Aufwand. Dann lös ich das gleich mit ein haufen Cases - ist ja auch nich mehr arbeitSmile

Eigentlich dachte ich dass es in LabVIEW einfach so ein Teil gibt, wo als Input Label Name und Value angibst und das warsSmile oder eben über Reference, dass er das selbstständig erkennt. Das ist aber schon schade


Über String ein Object ansprechen - Ragdar - 08.04.2009 11:33

Aha, ich glaub nach dem 20. mal durchschauen versteh ich was du meinst. 3. Bild Property Node: Controlls on Page - das ist interessant. Auf welches Objekt muss ich die Property Node setzen, auf mein VI?


Über String ein Object ansprechen - Ragdar - 08.04.2009 12:08

Oki Danke, ich glaub hab es hinbekommen!

Hab jetzt ein Cluster aus String und Ref gemacht und das in ein Array. Jetz muss ich nur noch nach dem String suchen - aber damit ich im Array suchen kann muss ich ja das Element angeben, und somit die Ref... Wieso is nur alles so schwer :/

Das sollte alles sehr schnell gehen, da alle Controlls pro Sek 2-3 mal geupdatet werden sollen


Über String ein Object ansprechen - oenk - 08.04.2009 12:38

ok, das wusste ich nicht, dass du 2-3mal pro Sekunde ein update machen willst.
Dann ist das auf diese Art vielleicht nicht so geschickt. Zugriff über PropertyNode ist nicht grad die Resourcen-schonenste Art ein GUI update zu machen.
Ich würde mir vielleicht mal die Datenstruktur und das FP-Design überdenken und es ggf anpassen...


Über String ein Object ansprechen - Lucki - 08.04.2009 14:17

Also wenn ich Deinen alleresten Text richtig verstanden habe dann ist es so:
Du hast N Anzeigeelemente mit Beschriftungen (Die habe ich im Beilspiel in einem verborgenem Cluster zusammengefasst).
Mit einem Textarray mit Elementezahl M werden die Werte der Anzeigen aktualisiert, es müssen aber nicht immer alle Werte sein, d.h M<=N, außerdem kann die Reihenfolge der Werte im Array beliebig sein.
Wenn es so ist, dann würde ich es so machen:

Lv82_img:[attachment=17698]
[attachment=17795]

Code:
Das sollte alles sehr schnell gehen, da alle Controlls pro Sek 2-3 mal geupdatet werden sollen
Mit dieser Anmerkung bist Du hier im falschem Film. Alle 2-3 ms wäre schnell. aber so...


Über String ein Object ansprechen - RoLe - 08.04.2009 14:39

Basierend auf Lucki's Beispiel eine Vereinfachung.
Da ja die Info (Index im Cluster) bereits im Stringarray bekannt ist, kann auf das suchen nach Label verzichtet werden.


Über String ein Object ansprechen - Lucki - 08.04.2009 16:39

' schrieb:Basierend auf Lucki's Beispiel eine Vereinfachung.
Sehr gut, darauf bin ich nicht gekommen, Es müssen dann lediglich die Clusterelemente entprechend dem Label-Index (M0, M1..) angeordnet sein - was ja keinerlei Einschränkung darstellt. (Weitere klitzekleine Vereinfachung übrigens in beiden Beispielen: Das läßt sich alles mit einer for-Schleife erledigen)

NB: Radgar läßt sich nicht genau darüber aus, ob bei jedem Drchlauf immer alle Elemente aktualisiert werden. Wenn das der Fall sein sollte, wenn also die Elementezahl des Stringarrays immer gleich der Anzahl der Anzeigen sein sollte, dann wäre mit einer lexikalischen Sortierung des Stringarrays eine noch einfachere Lösung denkbar.


Über String ein Object ansprechen - Ragdar - 14.04.2009 15:57

Hallo,

funktioniert wunderbar so, nur jetz muss ich das ganze noch ein wenig aufblasen :/
Und zwar bekomm ich jetzt auch im Array nicht nur nummerische sondern auch T/F Elemente die mit 1 oder 0 gekennzeichnet sind. Also:

ON:1 -> True

ibt es ne möglichkeit über die Reference den Typ herauszufinden und somit den Value der Elemente so noch flexibler zu gestalten?