INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Richtige Struktur bei Benutzeroberflächen



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

05.03.2015, 19:15
Beitrag #1

Arachnoid Offline
LVF-Grünschnabel
*


Beiträge: 25
Registriert seit: Nov 2009

12
-
DE

37073
Deutschland
Richtige Struktur bei Benutzeroberflächen
Hallo zusammen,

bisher habe ich VIs ausschließlich für mich selbst erstellt. D.h. außer mir wurden die VIs von niemandem sonst verwendet. Dementsprechend sahen (zugegebenermaßen) auch die Benutzeroberflächen aus. Um so etwas wie das Abfangen von Fehlbedienung durch den User etc. habe ich mich daher nie kümmern müssen.

Nun stehe ich vor dem Problem, dass auch andere meine VIs benutzen wollen.

Die Benutzeroberfläche umfasst nicht all zu viele Möglichkeiten. Es gibt mehrere Prozesse die nacheinander vom User gestartet werden können. Ein Abbruch der Prozesse vor der Beendigung muss möglich sein.

Ich habe in den Anhang mal zwei Strukturen gepackt GUI1 und GUI2. Bei GUI1 habe ich das Problem, dass die Starttaste manchmal nicht reagiert. Bei GUI2 ist die Benutzeroberfläche komplett gesperrt während der Prozess läuft, sodass der Prozess nicht beendet werden kann.

Kann jemand Hilfestellung geben? Sind das Strukturen die man für eine solche Aufgabe verwendet?

Dazu muss ich sagen, dass ich mir vor einiger Zeit LabVIEW selbst beigebracht habe. Ich habe leider keine Ausbildung als Informatiker o.ä..

Viele Grüße,

Arachnoid


Angehängte Datei(en)
12.0 .vi  Gui1.vi (Größe: 15,13 KB / Downloads: 179)

12.0 .vi  Gui2.vi (Größe: 16,46 KB / Downloads: 166)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
05.03.2015, 22:07
Beitrag #2

Holy Offline
LVF-Stammgast
***


Beiträge: 339
Registriert seit: Sep 2008

2014
2007
EN

09XXX
Deutschland
RE: Richtige Struktur bei Benutzeroberflächen

Akzeptierte Lösung

Von deinen beiden Varianten passt die zweite am ehesten. Die Variante 1 würde ich als Polling basierten Ansatz nicht mehr verwenden. An deiner Variante zwei ist das eigentliche Problem die Einstellung "Panel sperren" im Einstellungsdialog des Events.
Je nach eigentlicher Aufgabe solltest du dich ggf. zu solchen Design Pattern wie Queued Message Handler einlesen.

Ich habe dein VI mal ein klein wenig aufgeräumt und geändert. Es ist jetzt beendbar über das Kreuz rechts oben. Die Stop-Buttons sind nur bedienbar wenn der jeweilige "Prozess" läuft.


Angehängte Datei(en)
12.0 .vi  Gui2-1.vi (Größe: 10,3 KB / Downloads: 171)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.03.2015, 22:32
Beitrag #3

Trinitatis Offline
LVF-Guru
*****


Beiträge: 1.694
Registriert seit: May 2008

7.1 / 8.0 /2014-1, 18
2002
DE

18055
Deutschland
RE: Richtige Struktur bei Benutzeroberflächen

Akzeptierte Lösung

Hallo Arachnoid,

es ist grundsätzlich keine gute Idee, lange laufende Prozesse innerhalb eines Events einer Eventstruktur "gefangenzuhalten", da du kein Event derselben Eventstruktur in dieser Zeit ausführen kannst.

Deshalb sollte die Eventstruktur nur die Ereignisse registrieren und eine Nachricht z.B. per Queue an eine Parallelschleife senden, die diese Aufgaben dann abarbeitet.

Die Messdateneinsammelschleife sollte dabei einen Sonderstatus einnehmen, damit sie nichts anderes blockieren kann.

Gruß, Marko
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.03.2015, 17:34
Beitrag #4

Arachnoid Offline
LVF-Grünschnabel
*


Beiträge: 25
Registriert seit: Nov 2009

12
-
DE

37073
Deutschland
RE: Richtige Struktur bei Benutzeroberflächen
Hallo zusammen,

vielen Dank für eure schnelle Antwort. Ihr habt mir sehr geholfen. Ich werde mich mal in diese Richtung einlesen.

@Holy: Diese Einstellung hatte ich in den Eigenschaften der Ereignisstruktur übersehen. Dein Beispiel enthält genau die Funktionalitäten die ich benötige!

Viele Grüße,

Arachnoid
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.03.2015, 19:22 (Dieser Beitrag wurde zuletzt bearbeitet: 06.03.2015 19:23 von Lucki.)
Beitrag #5

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Richtige Struktur bei Benutzeroberflächen
Es handelt so sich hier um genau zwei gleiche, aber voneinander unabhängige Progrämmchen. Warum die nicht einfach in zwei genau gleichen, voneinander unabhängigen Schleifen laufen lassen? Außerdem: Für mich heißt "Stop" Stop jetzt" und nicht "Stop nach Ablauf von irgendetwas" - von begründeten Ausnahmen natürlich abgesehen.
Anmerkung: NI empfiehlt, pro Schleife nur eine Ereignisstruktur zu verwenden. Das Forum empfiehlt durchweg nur eine Ereignisstruktur pro VI. Ich richte mich hier ausnahmsweise mal nach den Empfehlungen von NI und bitte im Voraus um Gnade. Es wird ganz bestimmt nicht wieder vorkommen. Big Grin

12.0 .vi  Gui3.vi (Größe: 10,87 KB / Downloads: 192)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.03.2015, 12:46
Beitrag #6

Arachnoid Offline
LVF-Grünschnabel
*


Beiträge: 25
Registriert seit: Nov 2009

12
-
DE

37073
Deutschland
RE: Richtige Struktur bei Benutzeroberflächen
Hallo zusammen,

ich habe mal die Variante mit der Queue ausprobiert. Ich bin mir nun aber nicht sicher ob diese für meine Anwendung geeignet ist. Wird z.B. Stop mehrfach betätigt so wird dieser Event auch mehrfach abgearbeitet, dies ist eigentlich unerwünscht. Mir ist klar, dass die Queue abgearbeitet wird, aber ist diese Struktur tatsächlich für diesen Anwendungsfall geeignet? Wird diese Struktur in der Regel für so etwas abgewandelt?

Viele Grüße,

Arachnoid

PS: Ich habe nur mal Start1 und Stop1 realisiert


Angehängte Datei(en)
12.0 .vi  Gui4.vi (Größe: 21,18 KB / Downloads: 142)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
Information Der richtige Umgang mit (Langzeit)Messdaten NoWay 6 5.531 13.05.2015 13:57
Letzter Beitrag: mathez
  Richtige Syntax in der Main für den Verbindungsaufbau zur Seriellen Schnittstelle Atilla 8 7.543 18.03.2013 10:11
Letzter Beitrag: Atilla
  CPU Auslastung : CASE Struktur VS Event Struktur > 20% : 60% ??? Dimasq 14 12.647 08.06.2012 12:28
Letzter Beitrag: Dimasq
  Frage zu State Machine bzw. Ratgeber für richtige Struktur Sandisk 5 8.057 27.01.2011 00:57
Letzter Beitrag: macmarvin
  Richtige Nutzung der Methode 'Ctrl Val.Set' nurso 7 6.358 17.12.2010 18:21
Letzter Beitrag: nurso
  Die richtige Arbeitsweise mit dem Projektmanager, wie? Alpenpower 3 5.430 19.11.2009 15:25
Letzter Beitrag: IchSelbst

Gehe zu: