LabVIEWForum.de
Alle Elemente eines Cluster bearbeiten (Schleife) - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Alle Elemente eines Cluster bearbeiten (Schleife) (/Thread-Alle-Elemente-eines-Cluster-bearbeiten-Schleife)



Alle Elemente eines Cluster bearbeiten (Schleife) - curby23523 - 21.11.2012 12:46

Hallo,

wenn ich ein Cluster habe, welches aus unterschiedlichen Elementen besteht, gibt es dann die Möglichkeit, jedes einzelne Element z.B. mit einer For-Schleife einzeln zu betrachten und zu bearbeiten (z.B. Werte/Typ abfragen etc.)? Ich kann ja kein Array generieren, wenn es sich um unterschiedliche Elemente handelt.

mfg
Nils


RE: Alle Elemente eines Cluster bearbeiten (Schleife) - GerdW - 21.11.2012 12:48

Hallu curby,

wozu etwas in einer For-Loop nacheinander erledigen, wenn du es auch parallel erledigen kannst?
Es gibt die Funktionen Bundle/Unbundle(ByWire)...


RE: Alle Elemente eines Cluster bearbeiten (Schleife) - curby23523 - 21.11.2012 12:54

Ganz einfach gesagt habe ich mehrere Cluster mit jeweils ca. 8 Einstellungen für Messgeräte und ich möchte diese Einstellungen in eine .ini Datei speichern.
Dazu würde ich jetzt einfach jedes Cluster durchgehen (schleifen) und jedes Element mit dem Vi "Schlüssel schreiben" automatisch in eine ini Datei schreiben (also gleihzeitig den Namen des Elements ermitteln und ob es sich um ein Bedienfeld handelt).


RE: Alle Elemente eines Cluster bearbeiten (Schleife) - GerdW - 21.11.2012 12:56

Hallo curby,

ich hoffe für dich, dass diese Cluster als Array vorliegen.
In der FOR-Loop über das Array dann einfach UnbundleByName verwenden!


RE: Alle Elemente eines Cluster bearbeiten (Schleife) - Kasi - 21.11.2012 13:42

Ich geb dir mal eine Idee (Minimal-VI) davon, wie du es machen könntest.
Knackpunkt ist hier, dass man erst rausfinden muss, um was für Daten es sich im Cluster handelt, damit man die Variant-Daten entsprechend umwandeln kann.
Die einzelnen Cluster würde ich vorher als Referenz-Array wie gezeigt zusammenziehen, damit du sie in einer For-Schleife abarbeiten kannst.

Als Beispiel hab ich hier nur den Double-Typ eingebunden, das musst du dann halt für alle Datentypen, die du verwendest, machen. Bei Arrays musst du dann nochmal rausfinden, was denn im Array steht - das kann beliebig rekursiv werden.

***edit*** whoops, zu hoch gegriffen mit der LV Version, gleich nochmal


RE: Alle Elemente eines Cluster bearbeiten (Schleife) - Lucki - 21.11.2012 14:04

(21.11.2012 12:46 )curby23523 schrieb:  wenn ich ein Cluster habe, welches aus unterschiedlichen Elementen besteht, gibt es dann die Möglichkeit, jedes einzelne Element z.B. mit einer For-Schleife einzeln zu betrachten und zu bearbeiten (z.B. Werte/Typ abfragen etc.)? Ich kann ja kein Array generieren, wenn es sich um unterschiedliche Elemente handelt.
Einen Array der Elemente nicht, aber es gibt einen Eigenschaftsknoten, der einen Array der Referenzen der Elemente liefert. Damit läßts sich im Prinzip alles machen was Du vorhast, aber so ganz einfach ist das trotzdem nicht.

Aber warum willst du Dir das überhaupt antun, wenn es nur darum geht, die Werte das Clusters in einer ini-Datei zu speichern?
Der Wert das Clusters mit Informationen über die Werte aller Elemente ist ein Variant, der läßt sich in Text konvertieren, und den kann man als Ganzes in der ini speichern. Kleiner Nachteil: Die ini-Datei ist nicht so komfortabel editierbar, als wenn dort jedes einzelne Element des Clusters in der Ini-Datei aufgelistet ist.
Hier mal ein altes Testbeispiel von mir. Du mußt im MainVI nur die Elemente (oder eines davon) durch den von Dir gewünschten Cluster ersetzten oder ein beliebiges anderes Element einsetzen - die INI-Abspeicherung funktioniert immer.

Wenn Du aber unbedingt wissen willst, wie man das macht: den Cluster in die Elementwerte aufdröseln und in der ini abspeichern, dann schau Dir mal in der OpenG-Bibliothek das Vi zur Speichern aller Frontpanelwerte an und klaue Dir dort die entscheidenden Ideen.

Edit zum letzten Absatz: Habe mir das VI von Kasi angesehen. Das ist genau die Methode, wie es lang läuft. Mußt also nichts mehr bei OpenG klauen: Kwasi hat Dir alles geschenkt Big Grin


RE: Alle Elemente eines Cluster bearbeiten (Schleife) - Kasi - 22.11.2012 09:40

(21.11.2012 14:04 )Lucki schrieb:  Kwasi hat Dir alles geschenkt

Ich bin Kwasi, der Weihnachtsmann.
Grüße,
Kasi Tongue


RE: Alle Elemente eines Cluster bearbeiten (Schleife) - Lucki - 22.11.2012 10:52

(22.11.2012 09:40 )Kasi schrieb:  
(21.11.2012 14:04 )Lucki schrieb:  Kwasi hat Dir alles geschenkt
Ich bin Kwasi, der Weihnachtsmann.
Grüße,
Kasi Tongue
Als Herder mal über Goethes Namen dichtete: "Der Du von den Goten kommst, oder vom Kote", hat der äußerst humorlos reagiert. Zum Glück bist Du da nicht so. Habe in meinem Beitrag den Namen korrigiert, so dass Deine Anmerkung jetzt von niemandem mehr verstanden werden kann Big Grin
Gruß Ludwig


RE: Alle Elemente eines Cluster bearbeiten (Schleife) - curby23523 - 22.11.2012 11:55

Ich habe jetzt einen Eigenschaftsknoten gemacht, alle Elemente gelistet als Referenzen und dann dadrüber alle Werte in einer Ini-Datei gespeichert. War ja nun keine große Sache und funktioniert, wie es beabsichtigt war.

Kann ich nun eine Referenz auf ein Objekt im Fronpanel erzeugen, wenn ich nur den Namen dieses Objektes kenne? Ich habe beispielsweise einen String vorliegen "Dateiname" und habe auch ein Objekt auf dem Frontpanel das so heißt. Nun möchte ich eine Referenz auf eben dieses Objekt mittels des Strings erzeugen.

mfg
Nils


RE: Alle Elemente eines Cluster bearbeiten (Schleife) - jg - 22.11.2012 12:27

Jein, geht nur umgekehrt.
Also per PropertyNode die Liste aller Frontpanel-Refnums holen, und dann Nachschauen, ob das Label eines Controls deinem gewünschten Label-Text entspricht.

Gruß, Jens