LabVIEWForum.de
Event B automatisch starten lassen, nachdem Event A eingetreten ist ? - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Event B automatisch starten lassen, nachdem Event A eingetreten ist ? (/Thread-Event-B-automatisch-starten-lassen-nachdem-Event-A-eingetreten-ist)

Seiten: 1 2


Event B automatisch starten lassen, nachdem Event A eingetreten ist ? - schurzgasschweisser79 - 10.05.2010 10:52

Hallo,

wie kann ich denn einen Case eines Eventhandlings automatisch ablaufen lassen, nachdem ein anderer Eventcase durch eine Userinteraktion ausgelöst und abgearbeitet worden ist?

Also gibts irgendwie eine Funktion in LabVIEW, die sowas wie "erzwinge Event Case nr. x" macht?

Danke


Event B automatisch starten lassen, nachdem Event A eingetreten ist ? - dimitri84 - 10.05.2010 10:59

Möglichkeit A) Benutzerdefiniertes Ereignis.
Möglichkeit B) Du machst dir ein Dummy Control (außerhalb des sichtbares Bereiches). Und fährst das Case über die Node Wert(signalisierend) an.

Ich mach meistens B.


Gruß dimitri


Event B automatisch starten lassen, nachdem Event A eingetreten ist ? - abrissbirne - 10.05.2010 12:10

' schrieb:Möglichkeit A) Benutzerdefiniertes Ereignis.
Möglichkeit B) Du machst dir ein Dummy Control (außerhalb des sichtbares Bereiches). Und fährst das Case über die Node Wert(signalisierend) an.

Ich mach meistens B.
Gruß dimitri
Ich mach meistens A. Big Grin


Event B automatisch starten lassen, nachdem Event A eingetreten ist ? - jg - 10.05.2010 12:25

Dann schmeißen wir noch Möglichkeit C in den Ring:
Producer-Consumer-Struktur!
Der Producer reagiert auf die Events, und sagt dem dem Consumer, was zu tun ist. Da kann man dem Consumer natürlich auch sagen, er soll 2 Sachen abarbeiten.

Gruß, Jens


Event B automatisch starten lassen, nachdem Event A eingetreten ist ? - dimitri84 - 10.05.2010 12:31

' schrieb:Wenn man keine Daten übergeben möchte, spricht dann etwas dagegen einfach nur die Nodes zu benutzen?

' schrieb:Aus meiner Sicht spricht da gar nichts dagegen.

Ich würde sogar das Verwenden des Propertys vorziehen.

Das Benutzerereignis verwende ich dann, wenn VI-übergreifend Aktionen ausgeführt werden sollen.

Mit der Node hat man's schneller zusammengeclickt finde ich.

---------------------------------

' schrieb:Ich mach meistens A. Big Grin



Event B automatisch starten lassen, nachdem Event A eingetreten ist ? - Lucki - 10.05.2010 14:59

Ich nehme immer B, nur muß man dafür doch nicht extra eine Dummy Variable erstellen, eine lokale Variable tuts doch auch.
Beispiel: Bedienelement E1 löst soll Events E1 und E2 auslösen. Bedienelement E2 nur Event E2.
Dann platziere ich einfach im Eventcase E1 eine lokale Variable des Bedienlementes E2 und füttere damit den Ereignisknoten von E2/Wert signalisierend.
[attachment=26359]

Dasselbe mache ich - und das ist eine recht häufige Anforderung - wenn bei der Initialisierunge eines Programms ein Event auch ohne Betätigung des Bedienelementes 1x feuern soll. Dann einfach das obige Konstrukt im Initialisierungsteil mit unterbringen.

Der Wert von E2 wird mit dieser Art Wertzuweisung garantiert nicht geändert. Der Eigenschaftknoten "Wert, signalisierend" löst aber immer ein Ereignis aus, wenn er gelesen wird, eine Wertänderung muß also gar nicht sein.


Event B automatisch starten lassen, nachdem Event A eingetreten ist ? - abrissbirne - 10.05.2010 15:18

' schrieb:Ich nehme immer B, nur muß man dafür doch nicht extra eine Dummy Variable erstellen, eine lokale Variable tuts doch auch.
Beispiel: Bedienelement E1 löst soll Events E1 und E2 auslösen. Bedienelement E2 nur Event E2.
Dann platziere ich einfach im Eventcase E1 eine lokale Variable des Bedienlementes E2 und füttere damit den Ereignisknoten von E2/Wert signalisierend.
[attachment=54945:clip.png]

Dasselbe mache ich - und das ist eine recht häufige Anforderung - wenn bei der Initialisierunge eines Programms ein Event auch ohne Betätigung des Bedienelementes 1x feuern soll. Dann einfach das obige Konstrukt im Initialisierungsteil mit unterbringen.
Dann ist dein Dummy E2, weshalb ich immer A verwende.


Event B automatisch starten lassen, nachdem Event A eingetreten ist ? - schurzgasschweisser79 - 10.05.2010 15:34

Danke euch allen!!

A und C kapier ich nicht auf die SchnelleWink...bzw. A und C helfen mir zu realisieren, dass ich irgendwie nichts Mächtiges über LabVIEW weißWink- ich glaub solche Momente braucht man abundan im Leben..Tongue

B ist glaub ich ausreichend tollBig Grin.

Besonderes Danke an Lucki für das Beispiel!


Event B automatisch starten lassen, nachdem Event A eingetreten ist ? - Lucki - 10.05.2010 15:50

' schrieb:Dann ist dein Dummy E2, weshalb ich immer A verwende.
Also ich gebe zu, daß ich die Ereignisstruktur immer nur als Reaktionen auf Bedienereignisse verwendet habe und mich mit "Benutzerdefinierten Ereignissen" nicht auskenne. D.h. bei meinen anfängerhaften Ereignsistrukturen stecken hinter jedem Ereigniscase wirkliche Bedienelemente als Auslöser. Auf das Beispiel bezogen ist Bedienelement E2 real existierend und wir echt bedient, es ist kein Dummy. Es wird bedient, wenn nur das Ereignis E2 ausgelöst werden soll.
Ich wäre dankbar, wenn an einem simplen Beispile mal gezeigt würde, wie Methode A überhaupt funktioniert - ich weiß es nämlich nicht.


Event B automatisch starten lassen, nachdem Event A eingetreten ist ? - dimitri84 - 10.05.2010 22:21

' schrieb:... an einem simplen Beispile mal gezeigt würde, wie Methode A überhaupt funktioniert
Ein Beispiel ... ich glaub von Markus.
Lv86_img[attachment=26371]

Edit: Die LV Beispiele zeigen auch wie der Datentransfer geht.

' schrieb:D.h. bei meinen anfängerhaften Ereignsistrukturen stecken hinter jedem Ereigniscase wirkliche Bedienelemente als Auslöser. Auf das Beispiel bezogen ist Bedienelement E2 real existierend und wir echt bedient, es ist kein Dummy.
Ich hab' öfter Verwenung für 2-3 Frames die ich unkompliziert programmatisch anfahren kann, ohne das diese je von "echten" Bedienereignissen ausgelöst werden. Wenn's nur ein Frame ist, könnte man auch den Timeout in Betracht ziehen.


Gruß dimitri