LabVIEWForum.de - Case-Struktur mit mehreren Elementen verbinden

LabVIEWForum.de

Normale Version: Case-Struktur mit mehreren Elementen verbinden
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich hänge gerade an einem scheinbar trivialen Problem fest. Vielleicht kann mir jemand dabei helfen:

Ich habe auf meinem FPanel mehrere LEDs als Bedienelemente. Je nach dem, welche der Benutzer betätigt, sollen verschiedene Operationen ausgeführt werden. Diese wiederum sollen in einer Case-Struktur stehen. Wenn also LED 1 aktiviert wurde, wird im Blockdiagramm Case 1 aktiviert.

Allerdings find ich gerade kein einfache Methode, die vielen Bedienelemente sinnvoll mit dem einen Fragezeichen der Case-Struktur zu verbinden.
Eventuell kann ich mir vorstellen, als Zwischenschritt noch ein Enum-Element im Blockdiagramm einzufügen, aber dann müsste das wiederum sinnvoll mit den Elementen verbunden werden.

PS: Das ganze sollte natürlich so gestaltet sein, dass bei keiner oder mehrfacher Auswahl nicht gleich das Programm ins Straucheln gerät, sondern einfach nichts machtSmile

Gruß, und ein schönes Restwochenende
Hallo,

auf Anhieb fällt mir folgende Lösung ein: Du erstellst aus den Buttons ein boolsches Array und wandelst das in eine Zahl.
Die Zahl spiegelt den Status der Buttons wieder von einer 4-Bit-Zahl (Binär).

So kannst du in der Case-Struktur auf die einzelnen Buttons reagieren, aber auch auf die Kombination verschiedener, falls du das benötigen solltest.
Auch ist es problemlos für weitere Buttons erweiterbar und recht flexibel.

Ein Beispiel ist angehängt.

[attachment=30578]

[attachment=30579]Lv85_img

Grüße
Matze
Ja, die Idee hatte ich auch schon. Dann werd ichs auch so machen.Smile

Hatte zunächst bedenken, ob das Programm nen Fehler meldet, wenn ich nich alle Cases vorinitialisiere. Aber wie ich gerade überprüft hab, wird bei Zahlen für die kein Case existiert "0,Voreinstellung" angewählt. Damit kann ich also leben.


DankeSmile
Genau das bedeutet die Option "Voreinstellung". Diese wird aufgerufen, wenn am Eingang der Case-Struktur etwas anderes anliegt als in den Cases definiert (vielleicht aus anderen Programmiersprachen als Else-Zweig bekannt).
Die Voreinstellung kannst du auch manuell auf einen anderen Wert setzen.
Die 0 tritt auf, wenn kein Schalter gewählt ist. D.h. diese könntest du ggf. zukünftig brauchen.

Lege hier z.B. einen Case mit Wert "-1" an (dieser kann durch keine Schalter-Kombination auftreten), klicke mit der rechten Maustaste auf die "-1" und wähle "als Standard festlegen" (oder wie das heißt).
Dann wird der Case "-1" aufgerufen, wenn eine Kombination auftritt, die du nicht definiert hast.
Referenz-URLs