LabVIEWForum.de
Alternative zur Ereignisstruktur - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Alternative zur Ereignisstruktur (/Thread-Alternative-zur-Ereignisstruktur)



Alternative zur Ereignisstruktur - simcum - 14.09.2020 20:58

Hallo liebe LabView Gemeinde,

eine Frage in die Runde:

Hab ein optionsfeld mit vier buttons mit denen ich jeweils ein Diagramm sichtbar machen möchte.
Die Diagramme habe ich aufgrund des größen Sichtfeldes übereinander plaziert.
Mit dem betätigen eines Buttons im Optionsfeld möchte ich das jeweilige Diagramm sichbar machen.

Wenn keins der Buttons betätigt wird sollen alle vier Diagramme in kleinerer Form nebeneinander dargestellt werden.

Wie ich die Position oder die Größe ändern kann ist mir klar des weiteren weiß ich auch das ich das Problem mit einer Eventstrucktur lösen kann.

Ich würde es aber gerne ohne eine Eventstruktur realisieren wollen. Gibt es eine alternative dazu?
Mein Ansatz ist die Realisierung einer Statemachine, wie seht ihr das?

Bedanke mich

Simcum


RE: Alternative zur Ereignisstruktur - GerdW - 14.09.2020 21:19

Hallo simcum,

Zitat:Ich würde es aber gerne ohne eine Eventstruktur realisieren wollen. Gibt es eine alternative dazu?
Die Alternative zur Eventstruktur ist Polling, d.h. andauerndes Abfragen eines FP-Elementes.
Warum willst du das?

Zitat:Mein Ansatz ist die Realisierung einer Statemachine, wie seht ihr das?
Mit einer Eventstruktur bräuchtest du keine Statemachine, sondern eben nur einen Event-Case…


RE: Alternative zur Ereignisstruktur - simcum - 16.09.2020 07:10

Hallo Gerdw,

anscheinend gibt es keine vernünftige Alternative zum Ereignisevent.

Dann werde ich darauf zugreifen, danke für deine Antwort.

Gruß

Simcum


RE: Alternative zur Ereignisstruktur - Martin.Henz - 16.09.2020 08:52

(16.09.2020 07:10 )simcum schrieb:  anscheinend gibt es keine vernünftige Alternative zum Ereignisevent.

OT

Eine sehr interessante Meinung.
Die ganze LabVIEW-Welt war froh darüber, als NI endlich die Ereignisstruktur eingeführt hat (Anfangs etwas sehr lückenhaft, aber immerhin) und jetzt stellt sich für mich heraus, dass manch einer gar nicht glücklich darüber ist. Ahrg1


RE: Alternative zur Ereignisstruktur - Freddy - 16.09.2020 09:52

Hallo Simcum,
unter LabView gibt es die Möglichkeit ein Projekt aus verschiedenen Vorgaben erstellen zu lassen.
Versuch es mal mit "Handler für Nachrichten - Queues".
Da bekommst Du ein Vorlage mit Ereignisstruktur. Die musst du nur noch mit Deinen Buttons füllen.

Gruß
Freddy


RE: Alternative zur Ereignisstruktur - IchSelbst - 16.09.2020 10:05

(16.09.2020 07:10 )simcum schrieb:  anscheinend gibt es keine vernünftige Alternative zum Ereignisevent.
Ein "Ereignis-Event"? Eigentlich ist ein Ereignis ein Event. Meinst du mit Ereignisevent "Reaktion auf ein Ereignis"?

Es gibt nur zwei Möglichkeiten auf ein Ereignis zu reagieren (programmiersprachenunabhängig): Ein Event-Case oder gepollt. Einmal schickt das Objekt, in dem das Ereignis auftritt, eine Message, die dann vom Eventhandler der übergeordneten SW abgearbeitet wird. Oder die übergeordnete SW muss beim Objekt ständig nachfragen, ob ein Ereignis eingetreten ist oder ob eine Änderung stattgefunden hat.

Der Eventcase ist da eindeutig die bessere Lösung.

Pollen ist immer die schlechtere Lösung. Pollen bedeutet immer einen Zeitverzug bzw. einen Zeitversatz. Ein Zeitverzug durch Polling kann aber zu unvorhergesehenen Bedingungen führen: Das reicht soweit, dass das Ereignis übersehen werden kann.

Zwar gibt es auch bei einem Eventcase den Effekt des Zeitverzuges, aber nur in ganz bestimmten Fällen. Dann aber ist dieser Zeitverzug leicht handlebar, da man um den Effekt ja weis.

Eine Statemachine ist für die Verarbeitung von Ereignissen unbrauchbar.

In deinem Falle, nämlich bei der Reaktion auf eine Benutzereingabe, gibt es nicht besseres als ein Eventcase. Viele Benutzereingabe finden nicht in einem Datenfluss-Kontext bzw. einem Ablauf-Kontext statt. Und ohne diesen Kontext, reicht ein Case vorkommen aus.