LabVIEWForum.de - Einzigartige IDs der Controls eines VI-Frontpanels vorhanden?! Wenn ja: wie auslesen?

LabVIEWForum.de

Normale Version: Einzigartige IDs der Controls eines VI-Frontpanels vorhanden?! Wenn ja: wie auslesen?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,

um den aktuellen Wert der Bedienelemente auf dem Frontpanel eines VIs beim beenden der Applikation zu sicher, um bein starten wiederherzustellen, bin ich im Begriff einen Code zu schreiben, der diese Werte mit den Controlls verknüpft in eine .ini- oder XML-Datei schreibt.
Nun könnte man (was andere ach tun - siehe diesen Thread: http://www.labviewforum.de/thread-18214-page-3.html) natürlich den Wert der Beschriftungs-Properties der Controls auslesen, was mir allerdings nicht gefällt, da diese ja durchaus auch mehrfach gleich vorhanden sein können - auch wenn dies sicher keine 'gute Programmierpraxis' darstellt; doch dies ist ein anderes Thema was ich eigentlich nicht diskutieren möchte.

Dann wäre da noch das Referenz-Property - den Referenzdatentyp in einen Integer und dann String gewandelt, ergibt eine brauchbare Form der Zuordnung weiterer Properties, wie dem Wert, zu dem jeweiligen VI.
Der (große) Haken dabei: Bei jedem Start des VIs werden die Referenzen neu vergeben - sie sind während eines Laufes zwar konstant, aber nicht zwischen den Aufrufen - zum speicher und laden von Daten, was ja typischerweise gerade nach dem beenden und wieder-anstarten der Applikation relevant ist - also völlig untauglich!

Auf einem NI LabVIEW-Anwendertreffen fragte ich einen anwesenden NI-Guru diesbezüglich aus - er meinte, es gäbe so eine Eigenschaft, welche aber wohl nur in den Eigenschaftsknoten sichtbar sei, wenn man in der Entwicklungsumgebung irgendeinen 'erweiterten Bearbeitungsmodus' aktiviert hat - und da stieg ich aus, konnte, wieder zuhause angekommen, nicht nachvollziehen was genau damit gemeint war und diesen 'Unique-Identifier' auch nicht ausfindig machen!

Kann mir diesbezüglich jemand weiterhelfen? ...welche Eigenschaft man für diesen Zweck verwenden kann? Bzw. wie dieser ominöse 'Unique-Identifier' zu finden ist? - Was auch immer es ist, es muss sich natürlich während der Laufzeit auslesen und im Code verarbeiten lassen!
Ich hoffe ich habe verständlich genug ausgedrückt, auf was ich aus bin... Und noch mehr hoffe ich, dass es soetwas überhaupt gibt Smile

Beste Grüße
Sascha
Also ich habs Box
[attachment=35335]
Gruß, Jens
Hallo Jens,

hmm ja - jetzt machst Du mich neidisch, das ist genau das was ich bräuchte, nur ich hab's halt nicht!
Ich habe eine 'jungfräuliche' LabVIEW 2010 Installation in deutscher Sprache, eine Suche in der Hilfe nach 'UID' brachte auch nichts.

Oder suche ich einfach an falscher Stelle? Wenn ich einen Eigenschaftsknoten von einem beliebigen Frontpanelelement (z.B. wie bei Dir ein Enum) erstellen will, finde ich in der Auswahl nichts von 'UID' - oder etwas was auch nur daran erinnert...

Wäre sehr schön, wenn sich das irgendwie klären lässt - jetzt wo ich weiß, dass es das gibt, bin ich noch fi**ckriger, dass auch zu haben!

Grüße
Sascha
Ein Teil der Lösung ist aktiviertes Scripting. Das kann man in LV2010 in den Optionen von LabVIEW einstellen.
Pulldownmenü->Tools->Options, dann unter VI-Server schauen.
[attachment=35361]

Den Rest hast du per PN erhalten... Angel_not

Gruß, Jens
(18.08.2011 19:22 )jg schrieb: [ -> ]Den Rest hast du per PN erhalten... Angel_not
Kapier ich nicht ...
Zitat:!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Big Grin

Ich bleib dran ... irgendwann finde ich's bestimmt auch Box
Danke Jens,

aber UID gibt es erst mit LV2011... Da können wir, die wir noch mit älteren Versionen arbeiten, ja lange suchen...
(18.08.2011 20:59 )GerdW schrieb: [ -> ]Danke Jens,

aber UID gibt es erst mit LV2011... Da können wir, die wir noch mit älteren Versionen arbeiten, ja lange suchen...
Der Screenshot ist aus LV2010! Ehrlich. Big Grin 2011 habe ich noch nicht auf der HDD.

Gruß, Jens
Hallo Jens,

dann verrate doch bitte, diesmal nicht per PN, wie man da ran kommt...

Und ja, ich habe Scripting aktiviert: sowohl bei einer deutschen als auch bei einer englischsprachigen LV-Installation!
Btw. beides noch 2010f4 statt SP1...
Komischer Thread. Sacha weiß, daß die Mehrfachvergabe gleicher Beschriftungen, die das ganze Dilemma verusacht, "keine gute Programmierpraxis" ist, möchte aber "darüber nicht diskutieren" (Warum eigentlich nicht? Warum nicht einfach gut programmieren?). Statt dessen wird ein exotisches Ersatzthema untergeschoben, welches 95 % der User nicht interessiert - und die restlichen 5% interessiert es rein schöngeistig, nicht weil sie es je brauchen.

Der Sinn und Zweck der UID ist doch wohl folgender: Labview ist mehr als jedes andere Programm darauf eingerichtet, mit Dummheiten der Benutzer umzugehen. Bei allen Programm die ich sonst noch kenne - auch Leiterplattenprogrammen, Simultionsprogrammen - führt die dopelte Benennung von Elementen sofort zum Fehler. Bei Labview nicht. Weil Labview die Elemente dann immer noch mit der UID auseinanderhält. Gut so. Aber: Die GUI ist eben dazu da, mit Dummheiten der Benutzer zuechtzukommen. Aber gewiss nicht dazu, sie mit speziellen Tricks ans Tageslicht zu holen und sie dann dazu zu mißbrauchen, schlechte Programmierung zu ermöglichen.
„Der Mensch ist von Natur aus neugierig“ (Aristroteles) Big Grin ... soviel zu den Schöngeistern.
Seiten: 1 2
Referenz-URLs