LabVIEWForum.de
User Interface - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: User Interface (/Thread-User-Interface)



User Interface - Kvasir - 25.07.2008 08:59

Guten Morgen Forum,

nach mehrmonatiger Plagerei ist mein neues (und erstes größeres) Projekt nun im Großen und Ganzen fertig. Was nun noch ansteht ist es eine ansprechende und passende Benutzeroberfläche zu gestalten.
Zur Zeit arbeite ich mit einer Oberfläche, die zwar funktioniert, aber mehr oder weniger nur für mich erklärend ist. Im Besonderen geht es mir darum nun eine ansprechende Speicher und Lademöglichkeit zu gestalten.
Da ich weiß, dass viele von euch hier ständig große Projekte entwerfen und sicher Methode entwickelt haben um solche Probleme anzugehen, würde ich mich über ein paar Anregungen, wie ich das am Besten angehe freuen.

Folgende Problemstellung also:

- 1 Interface mit (Hausnummer) 50+ Controls (5-10 TypDef Cluster, die am Schluß in einem Cluster aus Cluster ans Programm gehen)
- Speichern/Laden der Einstellungen über XML Files
- Teilspeicherung (also die Möglichkeit nur bestimmte (definierte) Teile der Einstellungen in Dateien zu speichern)
- Der User soll die Möglichkeit haben die geladenen Einstellungen zu sehen und zu ändern, bevor er akzeptiert.
- Es kommen sicher mit der Zeit Controls hinzu, das ganze soll also möglichst einfach zu erweitern sein

Zur Zeit löse ich das Ganze über ein EventCase, dass Laden, Speichern abfängt und schreibe dann in einer State-Machine (um Platz im BD zu sparen), die die einzelnen Cluster abarbeitet, die Daten in die XML File, bzw. über lokale Variablen in die Controls. Das funktioniert soweit ganz gut, jedoch frage ich mich, ob es hier elegantere Möglichkeiten gibt?

Grüße

Kvasir


User Interface - RoLe - 25.07.2008 09:57

' schrieb:Zur Zeit löse ich das Ganze über ein EventCase, dass Laden, Speichern abfängt und schreibe dann in einer State-Machine (um Platz im BD zu sparen), die die einzelnen Cluster abarbeitet, die Daten in die XML File, bzw. über lokale Variablen in die Controls. Das funktioniert soweit ganz gut, jedoch frage ich mich, ob es hier elegantere Möglichkeiten gibt?

Hast du dir schon mal die "OpenG Variant Configuration VI" angschaut ?
Die haben VI zum lesen/schreiben von Cluster oder Controls auf dem FP (via VI-Ref), aber in eine INI Datei mit den Config.vi.

Mit XML bist du sicher moderner, da das inlv86eh verbessert wird/wurde. (eigene Schema zum validieren).
Ev. wäre es eine gute Idee, das Konzept der OpenG VI auf deine XML zu portieren.

Gruss
RoLe


User Interface - eg - 25.07.2008 10:01

Diese beiden Topics hast du sicherlich gesehen?

http://www.LabVIEWportal.eu/viewtopic.php?f=51&t=145

http://www.LabVIEWportal.eu/viewtopic.php?f=51&t=267

Gruß, eg


User Interface - Lucki - 25.07.2008 10:01

Es entpricht zwar nicht genau Deinen Vorgaben, aber ich will Dich auf jeden Fall auf ein Beispiel-VI hingewiesen haben, dass ich auch schon mal gepostet hatte und von dem ich jetzt nicht mehr weiß, wo es eigentlich her ist.
Es werden damit auf Kopfdruck die Werte aller Bedienelement in einer binären Datei gespeichert, auf geradezu sensationell einfache Weise, und ebenso wieder geladen. Der Witz dabei ist, daß diese Bedeinelemente in ihrer Datenstrukur völlig unterscheidlich sein können und im einzelnen gar nicht benannt zu werden brauchen - eben einfach alle.
Und ich traue Dir zu, das als interessanten Ansatz zu verwenden, um daraus genau das zu machen was Deinen Vorstellungen entpricht.
Das VI war eine Uraltversion, habe es lauffähig fürlv85gemacht.
[attachment=13683]


User Interface - Y-P - 25.07.2008 10:04

Je nach Anzahl der abzuspeichernden Einstellungen könntest Du sogar eine kleine Datenbank verwenden.
Wenn es sich vom Umfang aber in Grenzen hält, dann finde ich Deine Idee auch nicht schlecht.

Gruß Markus


User Interface - eg - 25.07.2008 10:14

@Lucki, binär abspeichern ist genauso einfach wie XML, hat aber den Nachteil, dass man die Datei mit Einstellungen mit einem Editor nicht editieren kann. XML ist dagegen ein verständlicher ASCII Text, den man händisch ändern kann.


User Interface - Lucki - 25.07.2008 10:30

' schrieb:@Lucki, binär abspeichern ist genauso einfach wie XML, hat aber den Nachteil, dass man die Datei mit Einstellungen mit einem Editor nicht editieren kann. XML ist dagegen ein verständlicher ASCII Text, den man händisch ändern kann.
Das war mir schon klar, daß das gepostete VI nicht in allen Punkten den Vorgaben von Kvasir entspricht, u.a. in der Speicherungsart.
Damit will ich mich jetzt nicht beschäftigen. Meine Anfangsvermutung aber ist, daß sich am geposteten VI die Speicherung mit vergleichsweise geringfügigen Änderungen von binär in HTML ändern läßt. Vielleicht bist Du hier eingearbeitet und kannst das bestätigen oder verneinen.


User Interface - RoLe - 25.07.2008 10:47

' schrieb:Das war mir schon klar, daß das gepostete VI nicht in allen Punkten den Vorgaben von Kvasir entspricht, u.a. in der Speicherungsart.
Damit will ich mich jetzt nicht beschäftigen. Meine Anfangsvermutung aber ist, daß sich am geposteten VI die Speicherung mit vergleichsweise geringfügigen Änderungen von binär in HTML ändern läßt. Vielleicht bist Du hier eingearbeitet und kannst das bestätigen oder verneinen.

Finde ich auch, das wichtige ist ja hier, die Methode Control Value:Get All... in welchem Format danach gespeichert wird ist was anderes.
Teilweise kann es auch von Vorteil sein, das die DAtei/Einstellungen nicht von jedem Editor verändert werden können.

@Kvasir: Mit dieser Methode machen es auch die OpenG.vi's, wie in Post#2


User Interface - eg - 25.07.2008 10:50

Jep, ich bestätige das Lol


User Interface - Kvasir - 25.07.2008 12:23

So erstmal vielen Dank für die zahlreichen Posts.

Ich werd mir jetzt mal auf jeden Fall die VIs von OpenG ansehen. Wenn ich das richtig verstanden habe machen die ja im Prinzip auch das, was das Beispiel von Lucki tut, nämlich die Controls vom FP auszulesen. Klingt auf jeden Fall mal nicht schlecht.
Das umschreiben auf XML dürfte an sich kein Problem sein.

Ich meld mich dann wieder, wenn ich etwas schlauer geworden binSmile