LabVIEWForum.de
Elemente in Queue einfügen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Elemente in Queue einfügen (/Thread-Elemente-in-Queue-einfuegen)

Seiten: 1 2


Elemente in Queue einfügen - Techniker - 15.03.2008 14:09

ich versuche einen Programmablauf mit einer/einem Queue zu realisieren.
In diese Queue füge ich ein String ein und dieser wird in einem anderen Programmteil ausgelesen und an meine Case-Struktur übergeben.
Jetzt möchte ich aber mehrere Strings auf einmal einlesen um diese nacheinander an die Case-Struktur zu übergeben.
Ist es möglich mehrere Einzelne Strings auf einmal in die Queue einzufügen?

Bis jetzt habe ich in dem zuerst aufgerufenen Case ein neuen String eingelesen um anschließend in das nächste zu springen. Problem ist nur, dass hierbei das Programm unübersichtlicher wird und man nicht so flexibel ist. Wenn man z.B. ein Case öfter aufrufen möchte macht es zum Teil auch Probleme, welche man damit umgehen könnte!


Techniker


Elemente in Queue einfügen - Y-P - 15.03.2008 15:07

Dann würd' ich einfach ein Array nehmen....

Ich hab' Dir hier mal 2 Beispiele (eins mit einem 1D String Array, und ein weiteres mit 2D-Double-Array).

[attachment=11623]
Lv80_img

[attachment=11624]
Lv80_img

Gruß Markus


Elemente in Queue einfügen - Techniker - 15.03.2008 17:02

' schrieb:Dann würd' ich einfach ein Array nehmen....

Ich hab' Dir hier mal 2 Beispiele (eins mit einem 1D String Array, und ein weiteres mit 2D-Double-Array).

[attachment=38773:Queue_mit_2D_Array.vi]
Lv80_img

[attachment=38774:Queue_mi...ng_Array.vi]
Lv80_img

Gruß Markus

Danke für die Beispiele, Aber ich kann sie leider nicht ganz zuordnen. Mein Problem ist es mehrere Cases Nacheinander zu beschalten. Am besten mit Strings. Und ich würde gerne wissen ob es möglich sei in ein Queue direkt 5 Strings einzufügen. Um es deutlicher zu machen hier nochmal ein Pic von meinem Programm.


[attachment=11626]

Wenn man auf die Taste F1 drückt wird in der Event-Struktur ein Strink ins Queue eingefügt und dann wird in dem Case-Struktur das entsprechende aufgerufen. Und ich möchte den Inhalt in dem Case nicht mehr so machen, sondern bevor ich das Case "Schritt 1" aufrufe soll im Queue schon Schritt 2 stehen.


Techniker


Elemente in Queue einfügen - Y-P - 15.03.2008 17:47

Bahn

Gruß Markus


Elemente in Queue einfügen - Techniker - 15.03.2008 18:44

mhh wie soll ich das denn am besten erklären.....
... also wir haben eine Queue.
dort wird durch durch das aufrufen einer eventschleife ein Wert reingeschoben
dieser wert besteht aus einem String.
der String ruft an einer anderen Stelle ein Case auf, welches aufgerufen wird, weil die Bezeichnung des Cases und der String identisch sind.
nach durchlaufen des Cases ist der Durchlauf beendet, weil die Queue leer ist.

Ich möchte in die Queue nicht nur einen String reinschreiben, sondern 2 oder mehr. Dann soll zuerst der erste String mein erster Case öffnen im Anschluss daran soll der 2. String aus der Queue gelesen werden und ein anderes Case öffnen.

Ich hoffe, dass ich diesmal eine bessere Erklärung geliefert habe.


Techniker


Elemente in Queue einfügen - Y-P - 16.03.2008 16:44

Dann mach' es doch wie ich gesagt habe mit einem Array, bei welchem Du immer das erste Element für einen Case verwendest und dann löscht. Dann wird das 2. Element zum ersten Element. Das neue "erste Element" nimmst Du für Deinen zweiten Case und löscht es dann.
Nun steht Dein anfangs "drittes Element" an der ersten Stelle. Jetzt rufst Du mit dem Element den Case auf,.....
Wenn Du es nicht verstanden hast, dann mach' ich nochmal ein Bsp..

Gruß Markus


Elemente in Queue einfügen - Techniker - 16.03.2008 17:40

ich habe es vom Prinzip verstanden, aber ist es auch möglich das Array direkt mit den Daten zu füllen??

Wenn es keine großen Umstände macht würde ich mich über ein Beispiel sehr freuen.


Techniker


Elemente in Queue einfügen - Y-P - 16.03.2008 21:41

Was meinst Du mit "ist es auch möglich das Array direkt mit den Daten zu füllen?"?

Gruß Markus

' schrieb:ich habe es vom Prinzip verstanden, aber ist es auch möglich das Array direkt mit den Daten zu füllen??

Wenn es keine großen Umstände macht würde ich mich über ein Beispiel sehr freuen.
Techniker



Elemente in Queue einfügen - Achim - 17.03.2008 07:29

Mal ein bisschen Off-Topic:

Nimm doch statt "Strings" lieber eine StrictTypeDef-Enum-Konstante für die Case-Auswahl. Die aktualisiert sich automatisch überall im Programm, wenn du in der Typ-Definition was änderst, die Cases nehmen automatisch die entsprechenden Bezeichnungen an und so werden auch Tipp-Fehler (bei der Case-Benennung) vermieden!


Elemente in Queue einfügen - Techniker - 17.03.2008 11:05

so ich versuche es nocheinmal deutlich zu machen, indem ich mein Programm mal hochlade.

Ich bin eigentlich offen für alle Möglichkeiten, weil ich um jede Hilfe dankbar bin.
Ich möchte durch das aufrufen eines Events in der Eventschleife am besten mein Queue mit "Daten" füllen und diese werden dann nacheinander wieder ausgelesen. Welche Art von daten ich in das Queue gebe ist mir eigentlich nicht so wichtig ich möchte beim damit in 1. Linie eine Case-Struktur steuern.

[attachment=11653]Lv80_img


Techniker