LabVIEWForum.de
Referenzen aus ReferenzCluster im Sub vi verwenden - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Referenzen aus ReferenzCluster im Sub vi verwenden (/Thread-Referenzen-aus-ReferenzCluster-im-Sub-vi-verwenden)

Seiten: 1 2


Referenzen aus ReferenzCluster im Sub vi verwenden - Topia - 24.08.2011 12:18

Mein Problem:

Ich habe ein MainVi mit Bedienelementen die in einen Cluster sind. Dies sind u.a Zahlen die eingestellt werden sollen aber je nach Bedarf auch gegraut sind.
Gesteuert werden soll dies von einem SubVi d.h wenn das MainVi an die Stelle kommt wo man bedienen soll rufe ich das SubVi auf und übergebe diesem die Referenz des Clusters.
Werte ändern und lesen mittels der Referenz schaffe ich aber ich weiß nicht wie ich durch die Cluster Referenz an die Referenzen der Elemente im Cluster komme um diese
gegebenfalls mittels eines Eigenschaftsknotens auszugrauen bzw Maximal/Minimal Wertebereiche festzulegen. Weiß da jemand was? THX!


RE: Referenzen aus ReferenzCluster im Sub vi verwenden - macmarvin - 24.08.2011 12:24

Eigenschaft "Controls"
[attachment=35442]


RE: Referenzen aus ReferenzCluster im Sub vi verwenden - Topia - 24.08.2011 12:33

Ok. Dann war ich gar nicht so weit entfernt davon aber wie komme ich an dieses "strict"?
Ok das strict brauche ich wohl nicht aber wie bekomme ich nun Zugang zu den Elementreferenzen? Z.b der Cluster hat 10 Elemente und ich will das 5. und 7. eingrauen?


RE: Referenzen aus ReferenzCluster im Sub vi verwenden - THL - 24.08.2011 13:22

Per rechtsklick auf die Referenz.


RE: Referenzen aus ReferenzCluster im Sub vi verwenden - Topia - 25.09.2011 18:05

Zu dem gleichen Problem hatte ich mir jetzt gedacht, siehe Anhang, das man auch so den namentlichen Zugang zu den Referenzen bekommt aber leider klappt der Cast nicht...

Lv10


RE: Referenzen aus ReferenzCluster im Sub vi verwenden - macmarvin - 25.09.2011 18:35

Der Cast klappt nicht, weil eine Referenz(Cluster(Refs)) etwas komplett anderes wie Referenz(Cluster(Werte)) ist.
Du könntest dir aber eine solche Funktionalität auch selbst bauen.
Zuerst alle Referenzen + Namen deines Datenclusters z.B. in Arrays ablegen (mit lv2010 kannst du das bequem rekursiv durchforsten). Danach hast du dann eine Datenstruktur mit der Abbildung von Ctl.Namen auf die passende Referenz.

Bei deinem Anhang fehlt ein SubVI bzw. ist umbenannt. Die Version bei .zips bitte auch mit angeben (hier lv2010).

Edit: LV-Version im vorigen Beitrag eingefügt! (A.Berndsen)


RE: Referenzen aus ReferenzCluster im Sub vi verwenden - Topia - 25.09.2011 19:23

Sorry. Ja das Subvi ist dasjenige was im zip File sich befindet. Die Lösung mit den Array wäre aber leider nur bei Runtime. Ich würde gerne die Namen der Referenzen zum Erstellen des SubVis haben damit ich weiß mit welcher Referenz ich gerade arbeite. Im Original Typedef sind es nicht nur drei Referenzen sondern über 20ig die unterschiedlich behandelt werden müssen und es werden zwei solcher Referenzen eingebunden. Da verliert man schnell die Übersicht.


RE: Referenzen aus ReferenzCluster im Sub vi verwenden - macmarvin - 25.09.2011 20:11

Wenn es komplett statisch und damit Unabhängig von Runtimefehlern sein soll, bleibt wohl nur Handarbeit.
[attachment=36116]
Ein mögliche Zwischenlösung wäre vielleicht den ReferenceCluster dynamisch z.b. beim Programmstart zu füllen.


RE: Referenzen aus ReferenzCluster im Sub vi verwenden - Topia - 26.09.2011 11:44

Genau diese Handarbeite würde ich mir ja gerne sparen wollen da sie a) bei über 40ig Referenzen aufwenig ist und b) nicht modular genug wenn ich ein neues Gerät habe wo sich was ändern würde. Ich denke ich muss also komplett umplanen außer es gibt noch irgendwie eine Möglichkeit mit einem Namen von einen Wert im MainVi diesen in einen SubVi zu grauen, Minimum Werte festlegen etc.


RE: Referenzen aus ReferenzCluster im Sub vi verwenden - M Nussbaumer - 26.09.2011 11:57

(26.09.2011 11:44 )Topia schrieb:  Genau diese Handarbeite würde ich mir ja gerne sparen wollen da sie a) bei über 40ig Referenzen aufwenig ist und b) nicht modular genug wenn ich ein neues Gerät habe wo sich was ändern würde. Ich denke ich muss also komplett umplanen außer es gibt noch irgendwie eine Möglichkeit mit einem Namen von einen Wert im MainVi diesen in einen SubVi zu grauen, Minimum Werte festlegen etc.

Über das Property "Label" kannst du ja unterscheiden mit welcher Referenz du arbeitest.

Falls dir das nicht eindeutig genug ist kannst du ja einen Enum mit den Namen erstellen und die Enum Elemente nach dem Label durchsuchen und den gefundenen Eintrag als Ausgabe nehmen. Falls es ein unbekanntes Element ist wird das ganze im Default-Fall abgefangen.

Wichtig ist dabei, dass der erste Fall dein Default-Fall ist.

Vorteil ist, dass man bei einem neuen Element nur den Enum entsprechend anpassen muss und natürlich die CasesWink

Gruss Marc