LabVIEWForum.de - Buttonabfragen vereinfachen bzw. zusammenfassen

LabVIEWForum.de

Normale Version: Buttonabfragen vereinfachen bzw. zusammenfassen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Hallo,

ich habe in einem Programm mehrere Buttons deren Signal ich kontinuierlich überwachen will.

[attachment=31865]

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:

Lv10[attachment=31866]

Danke und Gruß
Sicher, es ist Event Structure.
Danke für diese ausführliche Information.Wink

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.

[attachment=31867]

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
Die auszuführende Aktion macht man normalerweise in die Ereignisstruktur mit rein, den Button an sich eigentlich auch.
Hier ein kleines Bsp.:
[attachment=31869]
Lv10

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.
' schrieb:Hier ein kleines Bsp.:
[attachment=61038:Eventstruktur.vi]
Lv10

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:

[attachment=31874]

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?
' 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.
' 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?
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...
' 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.
Seiten: 1 2 3
Referenz-URLs