LabVIEWForum.de - Wie eigene User Events erzeugen?

LabVIEWForum.de

Normale Version: Wie eigene User Events erzeugen?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

Ich teste derzeit die Events und hänge bei dem erstellen von eigenen User Events. Leider brachte mich die Hilfe von LabVIEW auch nicht weiter. Bin mir auch nicht sicher, ob das überhaupt möglich ist in LabVIEW.

Es geht um folgendes einfaches Beispiel:


Ich habe ein SubVI und eine Main. Das SubVI berechnet irgendetwas und soll dann ein Event ("Fertig") auslösen.
Die entsprechende Eventstruktur im Main, soll dann in dem EventCase "Fertig" springen.
[attachment=20909]
Wie man sieht, hat das SubVI keinen Output.

Was ich einfach nicht verstehe ist, wie man ein eigenen UserEvent erstellt und im EventCase registriert. Bzw. dann auch noch ein UserEvent selbst auslöst.

Falls es gar nicht ohne "Output" geht, würde ich es auch noch mittels einem Output realisieren, jedoch darf der Output auf dem Main kein Bedien/Anzeigeelement sein, sondern man müsste die Daten abfragen -- Event auslösen.

Wer kann mir helfen?


Danke und schönes Weekend noch.

LV:8.6
Kurze Ergänzung:
Ziel soll es später sein, dass ich wie bei einem Anzeigelement, einem EventCase einfach von einem SubVI das Event ("Berechnung Fertig") hinzufügen kann.

Genauso wie ich bei jedem DrehknopfElement oder BooleanElement "Wertänderung" auswählen kann, ohne irgendwelche Datenflüsse in das EventCase zu ziehen.
Irgendwo müssen ja diese ganzen Events gespeichert sein, wenn man sie einfach so auswählen kann. Das muss doch auch mit eigenen Funktionieren.

Es müsste doch möglich sein ein User Event in einem SubVI zu erstellen und es in einem EventCase in der Main auszuwählen. Bisher konnte ich immer nur die Events (Maus geklickt, Maus drüber, Wertänderung,...) von Anzeigeelemente/Bedienelemente auswählen, die auf dem FP von Main sind.
Vielleicht hilft Dir ein dynamisches Event.

Gruß Markus
Also dein Dynamisches Event verstehe ich eigentlich als typisches eigenes User Event. Bei entsprechender Änderung der Daten wird es ausgeführt bzw. gefeuert.

Was ich brauche später wäre eine zentrale Eventstruktur, bei der ich auch Events abfangen kann, die aus anderen Vis kommen. Geht das?
such nach dynamisches registrieren von events - das gibt dir einen anhaltspunkt wie du alles in einer eventstruktur zentralisieren kannst
' schrieb:Was ich brauche später wäre eine zentrale Eventstruktur, bei der ich auch Events abfangen kann, die aus anderen Vis kommen. Geht das?
Klar, geht das.

Guckst du möglicherweise das hier, auf jeden Fall das da:Lv85_img
Guten Morgen,

vielen Dank für die hilfreichen Beiträge.
Also was ich so sehe bedeutet also, dass man immer das Datenlfusskonzept aufrecht erhalten muss.

Ohne Draht, keine Verbindung Big Grin.

Ich hatte gedacht, ob man nicht sowas wie ein globales Event registrieren kann. Man benötigt ja für vorinstallierte Anzeigelemente keine Verbindung zum Eventcase um deren Events zu registrieren/abzufangen. Man kann diese ja einfach über EventCase hinzufügen, indem man sie in der Auswahlliste markiert.

Schön wäre es gewesen, dieses auch mit eigenen erstellten Events zu realisieren und dazu auch noch in SubVis. Jedes mal einen Datenfluss zu zeichen/ziehen wollte ich eigentlich vermeiden mit so einer zentralen Struktur, die alle Events abfangen kann.


Es folgen 2 Bilder, so wie ich es mir vorgestellt hatte. Ich habe die Bilder mit MSPaint bearbeitet und entsprechen somit einer Wunschvorstellung. Wie man sieht fehlen die Verbindungen zum Case. So wie es optimal wäre für mich.
[attachment=20911]
[attachment=20912]
Geht auch ohne Datenfluss. Du musst nur irgendwie an die Refernce des Controls kommen, dessen Events du handlen willst. Da gibts verschiedene Möglichkeiten. Anbei ein Beispiel zum Spielen.

Lv86_img[attachment=20913]
[attachment=20914]
' schrieb:Also was ich so sehe bedeutet also, dass man immer das Datenlfusskonzept aufrecht erhalten muss.
Das gilt im Prinzip immer - und muss auch immer beachtet und prinzipiell aufrechterhalten werden.

Zitat:Ohne Draht, keine Verbindung
Hier gibt es eine Einschränkung:
Referenzen, Melder, Queues, Events etc sind alles imaginäre Verbindungen, also Verbindungen ohne Drähte, auf denen Informationen ausgetauscht werden. Beachten muss man halt: Da diese Strukturen im Datenfluss respektive der in der Datenweitergabe nicht sequenziert (d.h. zeitlich gesehen asynchron) sind, muss mit RaceCondidions gerechnet werden (respektive muss man Maßnahmen ergreifen diese zu vermeiden).
Danke euch zwei.
Ich werd mir das mal zur Gemüte führen. Wird sicherlich eine Weile dauern. Vielen Dank.
Referenz-URLs