LabVIEWForum.de - Commando Alias definieren

LabVIEWForum.de

Normale Version: Commando Alias definieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Leute,

wie kann man am einfachsten Befehle von "menschlicher" Sprache (verständlicher Text) zu gerätespezifischen Sprache umsetzen. Bis jetzt habe ich diese zwei Methoden benutzt:

Methode1 (switch case):

[attachment=7591]



Methode2 (index Array):

[attachment=7592]


Wie wäre es mit einer Combo Box? Ungefähr so:

[attachment=7593]




Die Methode mit der Combo Box würde ich am besten finden, WENN es ähnlich wie bei Enum wäre, dass man nur bestimmte vordefinierte Werte auswählen kann. Combo Box nimmt dagegen beliebige Strings, wenn die als Eingang eines VIs definiert ist.

Also ich brauche ein "ENUM" der einen String am Ausgang hat.

Ich hoffe ich habe es verständlich erklärt.

eg
Es ist doch eine einfache Frage, gibt es das oder nicht?

Ein einfaches Ja oder Nein würde mir schon reichen. Cool

Gruß
' schrieb:Es ist doch eine einfache Frage, gibt es das oder nicht?

Ein einfaches Ja oder Nein würde mir schon reichen. Cool

Gruß

Wenn du das Häkchen "Allow undefined values at runtime" deaktivierst und dann am VI-Input über rechte Maustaste eine Konstante oder Control erstellst, die den Input-String enthält, kannst du nur die vordefinierten Werte an das VI übergeben...mit einer allgemeinen String-Control/Konstante funktioniert die Einschränkung durch das Häkchen nicht...aber das hast du sicher auch schon selbst probiert:-)

Ansonsten wüsste ich nicht, dass es sowas wie ein Enum mit String als Ausgabe gäbe...
' schrieb:Wenn du das Häkchen "Allow undefined values at runtime" deaktivierst und dann am VI-Input über rechte Maustaste eine Konstante oder Control erstellst, die den Input-String enthält, kannst du nur die vordefinierten Werte an das VI übergeben...mit einer allgemeinen String-Control/Konstante funktioniert die Einschränkung durch das Häkchen nicht...aber das hast du sicher auch schon selbst probiert:-)

Ansonsten wüsste ich nicht, dass es sowas wie ein Enum mit String als Ausgabe gäbe...


Danke schön, ich habe vielmehr so was gemeint (das man als Programmierer eine vordefinierte Auswahl hat):

[attachment=7597]


Das mit dem Häckchen ist klar, es spielt aber in dem Fall keine Rolle. Das ist mehr für Benutzereingaben gedacht.

Gruss, eg
Hi eg,

evtl. so:


[attachment=7598][attachment=7587]

Das ist nicht besonders sauber, aber es tut...es handelt sich einfach um einen PictureRing...dem hab ich Kommandos hinterlegt und greife sie als RingText ab...die Klartext-Befehle sind als Jpeg's in den PictureRing geladen...das ist evtl. ein bisschen aufwändig, aber wenn man es erst mal hat (das heißt deckungsgleiche Bilder für die Klartexte) und als (Strict)TypeDef abspeichert, hat man gewonnen...

Vielleicht gibt's was eleganteres?

Gruss
Achim
Hallo Achim.
Ich habe nur LV8.0 Könntest du bitte konvertieren. Es interessiert mich, ich will da rein gucken.

Gruß, eg
hier als 8.0
' schrieb:Hallo Achim.
Ich habe nur LV8.0 Könntest du bitte konvertieren. Es interessiert mich, ich will da rein gucken.

Gruß, eg


' schrieb:hier als 8.0


Danke, es funktioniert so wie ich gemeint habe. Nur ist es mit den Bilder nicht so toll. Wenn man statt Bilder Text verwenden würde...
Na ja. Mit Enum+Case ist es eigentlich auch nicht schwer.

Wenn jemand noch weitere Vorschläge hat, bitte posten.

Danke, eg
' schrieb:Also ich brauche ein "ENUM" der einen String am Ausgang hat.

ein ENUM vom Datentyp STRING gibt es nicht. Das steckt ja schon im Namen "ENUMERATOR" ...

Wenn du die Werte zur Laufzeit ändern musst/willst, musst du einen Menü-Ring benutzen. Da ist mein Mittel der Wahl die Methode mit dem Array, der Ring-Datentyp ist dann I32, dann gibt's auch keinen Coercion Dot ...
' schrieb:ein ENUM vom Datentyp STRING gibt es nicht. Das steckt ja schon im Namen "ENUMERATOR" ...
Das war mir natürlich klar. Ich habe es auch nicht direkt so gemeint.


' schrieb:Wenn du die Werte zur Laufzeit ändern musst/willst, musst du einen Menü-Ring benutzen. Da ist mein Mittel der Wahl die Methode mit dem Array, der Ring-Datentyp ist dann I32, dann gibt's auch keinen Coercion Dot ...
Dann muss ich also einen Menu-Ring UND ein ENUM im SubVI erstellen, diese miteinander verbinden und den ENUM als Eingang definieren. Meinst du es so? Kannst du mal ein Bildchen posten, wie du es genau meinst? Wenn ich es richtig verstehe wird es keine Vorteile bringen zur Methode mit dem Index Array, außer daß ich den Coersion Dot nicht mehr sehe.
Oder meinst du einen Ring als Eingang Definieren und über eine ENUM-Typedef-Konstante den Wert setzen?

Gruß, eg
Referenz-URLs