10.04.2015, 09:30
(Dieser Beitrag wurde zuletzt bearbeitet: 10.04.2015 09:31 von TDO.)
Beitrag #1
|
TDO
LVF-Gelegenheitsschreiber
Beiträge: 125
Registriert seit: Oct 2013
2016
2009
DE
Deutschland
|
Variant Datentyp
Hallo Zusammen,
ich schreibe gerade ein Konfigurationstool. Der Benutzer soll auf dem Frontpanel verschiedene Einstellungen vornehmen können.
Die Frontpanelelemente sind dynamisch, d.h. deren Untertitel ist sichtbar und wird durch Werte aus einer .ini Datei gefüllt. Es wurden Dummy Elemente angelegt, welche nicht dargestellt werden, wenn Sie nicht benötigt werden. Das ganze hat den Vorteil, dass neue Konfigurationsmöglichkeiten eingefügt werden können, indem die .ini Datei und nicht das Programm selbst angepasst wird.
So.. jetzt möchte ich die Möglichkeit erstellen, damit die vorhandene Konfiguration in einer seperaten .ini Datei abgespeichert und geladen werden kann.
Wenn ich mir über eine Propertynode alle Referenzen auf Frontpanelelemente hole, alle Elemente in einer Schleife durchgehe und mir die Werte von den Elementen holen möchte, bekomme ich diese nur im Datentyp Variant.
Wie komme ich über diesen Datentyp an die eigentlichen Werte, sprich: Ist ein bool Element True oder False, was steht in einem String Control usw.
Die Frontpanelelemente können bool, string oder auch Integer Werte sein.
Gruß
TDO
|
|
|
10.04.2015, 10:48
Beitrag #2
|
n4f3ts
LVF-User
Beiträge: 30
Registriert seit: May 2014
LabVIEW 2014, 2015
2014
DE
Deutschland
|
RE: Variant Datentyp
Hallo,
ich bin selbst kein Experte, aber ich würde es mal mit der Funktion "Variant nach Daten" versuchen.
Gruß
Stefan
|
|
|
10.04.2015, 11:19
Beitrag #3
|
|
|
10.04.2015, 11:23
(Dieser Beitrag wurde zuletzt bearbeitet: 10.04.2015 11:24 von TDO.)
Beitrag #4
|
TDO
LVF-Gelegenheitsschreiber
Beiträge: 125
Registriert seit: Oct 2013
2016
2009
DE
Deutschland
|
RE: Variant Datentyp
Hi,
vielen Dank für die Antwort!
Das war der Anstoß, den ich gebraucht habe.
Über die Klassen-ID des jeweiligen Elements kann dessen Typ ermittelt werden und somit kann der "Typ" Anschluss des Variant to Data VIs dementsprechend verbunden werden!
Funktioniert super!
Vielen Dank.
Gruß
TDO
(10.04.2015 11:19 )Morpheus schrieb: Mit dem Eigenschaftsknoten "ClassID" kannst du den Datentyp des Controls auslesen.
Mit Hilfe der ClassID ist es möglich den Variant-Datentyp in den spezifischen Datentyp (Boolean, String, etc.) zu konvertieren.
Gruss
Chris
Danke Chris, mir ist der Gedanke gleichzeitig gekommen! :-)
|
|
|
10.04.2015, 11:42
Beitrag #5
|
|
|
10.04.2015, 12:13
Beitrag #6
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
RE: Variant Datentyp
OpenG liefert ebenfalls eine ausführliche Variant-Palette...
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
10.04.2015, 12:22
Beitrag #7
|
|
|
10.04.2015, 12:59
Beitrag #8
|
TDO
LVF-Gelegenheitsschreiber
Beiträge: 125
Registriert seit: Oct 2013
2016
2009
DE
Deutschland
|
RE: Variant Datentyp
So, jetzt kommt der umgekehrte Fall...
Wenn ich jetzt so eine Konfig Datei wieder laden will und die FP Elemente dementsprechend füllen will, brauche ich ja erneut den Variant Datentyp.
Ich lese also die ganzen Konfig Werte aus der .ini Datei ein. Diese stehen mir dann als String zur Verfügung.
Wenn ich das über das "ToVariant" VI mache, bringt er mir leider einen Fehler.
Wie kann ich die Daten also typenabhängig wieder auf meine FP Elemente übertragen?
Gruß
TDO
|
|
|
10.04.2015, 13:10
Beitrag #9
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
RE: Variant Datentyp
Du solltest dir die "OpenG Variant Configuration File" Palette anschauen, ich denke, da ist alles enthalten, was du gerade so versuchst...
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
10.04.2015, 13:17
(Dieser Beitrag wurde zuletzt bearbeitet: 10.04.2015 13:19 von GerdW.)
|
GerdW
______________
Beiträge: 17.480
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: Variant Datentyp
Hallo TDO,
Zitat:Die Frontpanelelemente können bool, string oder auch Integer Werte sein.
Warum speicherst du sie dann nicht in deiner INI-Datei als eben diese Datentypen? Das wird doch von den ConfigFile-Funktionen unterstützt!
Zitat:Wenn ich jetzt so eine Konfig Datei wieder laden will und die FP Elemente dementsprechend füllen will, brauche ich ja erneut den Variant Datentyp.
Nein, du brauchst den Datentyp, der zum FP-Element passt.
Zitat:Ich lese also die ganzen Konfig Werte aus der .ini Datei ein. Diese stehen mir dann als String zur Verfügung.
Wenn du sie passend gespeichert hättest, würdest du nicht String, sondern Bool/I32/String bekommen - passend zum FP-Element.
Idee:
- Lege dir deine FP-Elemente mit den Labels String_nnn, Bool_nnn und INT_nnn an, mit "nnn" jeweils als fortlaufende Nummer. Die Caption dieser FP-Elemente kannst du benennen, wie du willst.
- Wenn du jetzt Daten speichern willst, kannst du anhand des Labels sofort den Datentyp erkennen. In der INI-Datei landet dann jeweils die Keys "String_nnn_Caption" und "String_nnn_Value", genauso für die Bools und INTs…
- Beim Einlesen der INI-Datei kannst du dir die Keys ausgeben lassen und gleich passend einlesen und zuweisen…
- Für den "Komfort" beim Erstellen der INI-Datei kannst du ja einzelne Gruppen für STRING, BOOL und INT anlegen…
|
|
|
| |