24.01.2011, 12:01
Beitrag #1
|
brik
LVF-Grünschnabel
Beiträge: 26
Registriert seit: Jan 2011
10.0
2011
de
46539
Deutschland
|
Buttonabfragen vereinfachen bzw. zusammenfassen
Hallo,
ich habe in einem Programm mehrere Buttons deren Signal ich kontinuierlich überwachen will.
Gibt es eine elegantere Methode während des kompletten Verlaufs des Programmes Buttons zu überwachen und bei deren Betätigung eine Reaktion hervorzurufen?
Hier noch das VI für Interessierte:
00_while_buttons.vi (Größe: 8,91 KB / Downloads: 235)
Danke und Gruß
|
|
|
24.01.2011, 12:04
Beitrag #2
|
eg
LVF-SeniorMod
Beiträge: 3.868
Registriert seit: Nov 2005
2016
2003
kA
66111
Deutschland
|
Buttonabfragen vereinfachen bzw. zusammenfassen
Sicher, es ist Event Structure.
|
|
|
24.01.2011, 12:15
Beitrag #3
|
brik
LVF-Grünschnabel
Beiträge: 26
Registriert seit: Jan 2011
10.0
2011
de
46539
Deutschland
|
Buttonabfragen vereinfachen bzw. zusammenfassen
Danke für diese ausführliche Information.
Gibt es irgendwo gute Quellen, die mir eine Ereignisstruktur näher bringen, am besten mit Anwendungsbeispielen.
Selber kam ich beim Versuch der Anwendung einer Ereignisstruktur nicht weit.
In einem anderen Programm versuche ich zum Beispiel auf einen Button zu reagieren.
Das funktioniert auch, wenn ich den Button nur einmal drücke. Wenn ich ihn ein zweites Mal drücke, reagiert mein Programm nicht mehr.
Die LED steht hier nur beispielhaft für eine Aktion, in meinem anderen Programm steht weitaus mehr in der Case-Struktur.
Gruß
Sebastian
|
|
|
24.01.2011, 12:18
Beitrag #4
|
eg
LVF-SeniorMod
Beiträge: 3.868
Registriert seit: Nov 2005
2016
2003
kA
66111
Deutschland
|
Buttonabfragen vereinfachen bzw. zusammenfassen
Die auszuführende Aktion macht man normalerweise in die Ereignisstruktur mit rein, den Button an sich eigentlich auch.
|
|
|
24.01.2011, 13:00
(Dieser Beitrag wurde zuletzt bearbeitet: 24.01.2011 13:02 von Y-P.)
Beitrag #5
|
Y-P
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
Beiträge: 12.612
Registriert seit: Feb 2006
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
|
Buttonabfragen vereinfachen bzw. zusammenfassen
Hier ein kleines Bsp.:
Eventstruktur.vi (Größe: 9,25 KB / Downloads: 258)
Gruß Markus
EDIT: Wenn Du komplexere Dinge ablaufen lassen möchtest, eignet sich besser eine State-Machine. In der Eventstruktur werden normalerweise nicht so viele Funktionen in einen Eventcase gepackt.
--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
|
|
|
24.01.2011, 14:12
Beitrag #6
|
brik
LVF-Grünschnabel
Beiträge: 26
Registriert seit: Jan 2011
10.0
2011
de
46539
Deutschland
|
Buttonabfragen vereinfachen bzw. zusammenfassen
' schrieb:Hier ein kleines Bsp.:
[attachment=61038:Eventstruktur.vi]
Gruß Markus
EDIT: Wenn Du komplexere Dinge ablaufen lassen möchtest, eignet sich besser eine State-Machine. In der Eventstruktur werden normalerweise nicht so viele Funktionen in einen Eventcase gepackt.
Danke, so ähnlich habe ich es auch hinbekommen, aber warum bitte stürzt mein Programm dann beim zweiten Ausführen des folgenden Events ab:
Also, es läuft zwar noch ohne Fehlermeldung weiter, aber der Mauszeiger bleibt in Form des Fingers, wie er erscheint, wenn man über einem Button ist und es werden auch so keine Eingaben mehr erkannt oder angenommen.
Liegt es an der fehlenden While-Schleife um die Ereignisstruktur?
|
|
|
24.01.2011, 14:43
Beitrag #7
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Buttonabfragen vereinfachen bzw. zusammenfassen
' schrieb:Liegt es an der fehlenden While-Schleife um die Ereignisstruktur?
Genau. Die Ereignisstruktur selbst sieht zwar von der Optik so aus wie eine Schleife, ist aber selbst keine. Wenn die Schleife um die Ereignisstruktur fehlt, stürzt das Programm aber nicht, wie Du schreibst, ab, sondern es wird schlichtweg beendet, da alles erledigt ist was zu tun war.
|
|
|
24.01.2011, 14:46
Beitrag #8
|
brik
LVF-Grünschnabel
Beiträge: 26
Registriert seit: Jan 2011
10.0
2011
de
46539
Deutschland
|
Buttonabfragen vereinfachen bzw. zusammenfassen
' schrieb:Genau. Die Ereignisstruktur selbst sieht zwar von der Optik so aus wie eine Schleife, ist aber selbst keine. Wenn die Schleife um die Ereignisstruktur fehlt, stürzt das Programm aber nicht, wie Du schreibst, ab, sondern es wird schlichtweg beendet, da alles erledigt ist was zu tun war.
Das Problem dabei ist aber, dass sich in dem Programm noch andere While-Schleifen befinden. Die können doch nicht einfach übergangen werden, oder?
Es müsste doch eigentlich die Ereignisstruktur nach einmaligen Ausführen nicht mehr reagieren, aber der Rest des Programmes problemlos weiterarbeiten.
Oder sehe ich das was falsch?
|
|
|
24.01.2011, 14:52
(Dieser Beitrag wurde zuletzt bearbeitet: 24.01.2011 14:52 von GerdW.)
Beitrag #9
|
GerdW
______________
Beiträge: 17.469
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
Buttonabfragen vereinfachen bzw. zusammenfassen
Hallo brik,
die siehst nicht falsch, aber übersiehst etwas:
Bei deiner Eventstruktur ist auf ein Ereignis festgelegt. Dieses will die Eventstruktur abarbeitet, sobald sie an die Reihe kommt. Deine Struktur kommt aber nur genau einmal an die Reihe - jede weitere Bearbeitung wird unmöglich. Dann übersiehst du noch das Häkchen bei "Blockiere UI während der Bearbeitung des Events" (so oder so ähnlich), dies führt zu dem von dir beschriebenen "Absturz" - der aber keiner ist, sondern nur ein Blockieren des UIs...
|
|
|
24.01.2011, 14:56
|
brik
LVF-Grünschnabel
Beiträge: 26
Registriert seit: Jan 2011
10.0
2011
de
46539
Deutschland
|
Buttonabfragen vereinfachen bzw. zusammenfassen
' schrieb:Hallo brik,
die siehst nicht falsch, aber übersiehst etwas:
Bei deiner Eventstruktur ist auf ein Ereignis festgelegt. Dieses will die Eventstruktur abarbeitet, sobald sie an die Reihe kommt. Deine Struktur kommt aber nur genau einmal an die Reihe - jede weitere Bearbeitung wird unmöglich. Dann übersiehst du noch das Häkchen bei "Blockiere UI während der Bearbeitung des Events" (so oder so ähnlich), dies führt zu dem von dir beschriebenen "Absturz" - der aber keiner ist, sondern nur ein Blockieren des UIs...
Danke für die Erläuterung. Ohne das Häkchen lässt sich mein Programm in der Tat weiterhin bedienen.
|
|
|
| |