LabVIEWForum.de
Mehere Queues lesen und schreiben.... - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenkommunikation (/Forum-Datenkommunikation)
+---- Thema: Mehere Queues lesen und schreiben.... (/Thread-Mehere-Queues-lesen-und-schreiben)



Mehere Queues lesen und schreiben.... - Schorschi79 - 08.11.2009 12:41

Hallo Leute,

ich hoffe mir kann jemand ein tip geben.
Folgende Situation:

Ich habe Daten die aus einem 1zeiligem Array mit 4 Einträgen bestehen. Diese Daten gibt es bis zu 100mal.
Die Zahl in der ersten Arrayzeile gibt an zu welchem Teilnehmer die Daten gehören.
Diese Daten brauch ich sortiert für jeden Teilnehmer und diese weiter verarbeiten zu können.

Ich hab jetzt testweise für jeden Teilnehmer eine Queue definiert die gefüllt wird und auf der anderen Seite ausgelesen wird.
Allerdings wird es etwas unübersichtlich wenn ich da jetzt 100 Queuebausteine ins Blockdiagramm reinlegen.

Ich habe jetzt eine Forschleife in der die Queues erstellt werden. Diese sollen in einer Whileschleife abhänging davon welcher Teilnehmer
es ist befüllt werden und ausserhalb der while-schleife ausgelesen und ausgewertet werden. Nun wird ja hier eine Art riesen Array generiert.

Mein Problem ist, dass ich nicht weiss wie ich innerhalb der While - Schleife auf die jeweiligen Queues zugreifen kann und wie ich ausserhalb der Schleife
aus den entsprechenden Queues lesen kann.

Ich hab euch mal ein Schreenshot angefügt.

Gruss und Danke Schorsch.


Mehere Queues lesen und schreiben.... - IchSelbst - 08.11.2009 13:00

' schrieb:Ich hab jetzt testweise für jeden Teilnehmer eine Queue definiert die gefüllt wird und auf der anderen Seite ausgelesen wird. Allerdings wird es etwas unübersichtlich wenn ich da jetzt 100 Queuebausteine ins Blockdiagramm reinlegen.
Ziel soll es also sein, dass jeder Teilnehmer seine eigene Queue hat. Das ist so auch sinnvoll.

Zitat:Ich habe jetzt eine Forschleife in der die Queues erstellt werden.
Jawohl. Aber:
Du erstellt nicht (siehe Bild) 37 Queues, sondern eine einzige, die 37 Referenzen hat! Das kommt daher, weil die Queue den Namen "Daten" hat. Willst du 37 Queues erzeugen, so musst du 37 Namen vergeben. Ich würde im Namen die Nummer des Teilnehmers hinterlegen. Mit dem Formatbefehl geht das dann so: "Daten_%02d".

Zitat:Diese sollen in einer Whileschleife abhänging davon welcher Teilnehmer es ist befüllt werden und ausserhalb der while-schleife ausgelesen und ausgewertet werden.
Da ein Teilnehmer seine Nummer kennt, z.B. 22, so wird er auch nur die Queue "Daten_22" abfordern.

Zitat:Nun wird ja hier eine Art riesen Array generiert.
Du brauchst hier nicht zwangsläufig ein Array erstellen. Alleine das Anfordern der Queue mit dem richtigen Namen ist ausreichend.
(Ein Array würde lediglich diverse Sachen vereinfachen. Der Index im Array entspricht dann dem Teilnehmer).


Mehere Queues lesen und schreiben.... - Schorschi79 - 08.11.2009 13:19

Hallo,

Danke für die schnelle Antwort.

Ja du hast mich richtig verstanden.

Verzeiht mir wenn ich hier blöde Fragen stelle aber ich hab mit LabVIEW noch nicht wirklich viel gemacht.

Zum Alegen der Queues:

For-Schleife wie von mir schon vorgesehen nur anders formatieren.
Kann mir jemand sagen wie und wo ich den vorgeschlagenen Formatbefehl eingebe.

Queue anfordern: verstehe ich das richtig dass ich nach dem Erstellen (da wird ja schon ne Queue angefordert) über den Namen
der Queue dann auf diese zugreifen kann. Nur wie mach ich dass? Es gibt ja das Element "Daten einfügen" hier muss ich die Queue und Das
ein zu fügenden Elemente andocken. Wie kann ich an dieser Stelle bestimmen welche der 37 Queues befüllt werden sollen.
Das selbe Problem dann natürlich auf der anderen Seite zum auslesen.

Gruss,
Schorsch.


Mehere Queues lesen und schreiben.... - IchSelbst - 08.11.2009 13:54

' schrieb:Kann mir jemand sagen wie und wo ich den vorgeschlagenen Formatbefehl eingebe.
In der Palette String.

Zitat:Queue anfordern: verstehe ich das richtig dass ich nach dem Erstellen (da wird ja schon ne Queue angefordert) über den Namen der Queue dann auf diese zugreifen kann.
Jawohl. Genau das ist ja Sinn der Sache.

Zitat:Nur wie mach ich dass?
z.B. so: Einfach erneut ein "Queue anfordern" ausführen. Anfordern bedeutet im Sinne des Wortes ja, dass was bestehendes verwendet werden soll. LV ist aber so intuitiv, dass es automatisch ein "Queue erstellen" macht, wenn noch nichts zum Anfordern vorhanden ist.

Zitat:Es gibt ja das Element "Daten einfügen" hier muss ich die Queue und Das ein zu fügenden Elemente andocken. Wie kann ich an dieser Stelle bestimmen welche der 37 Queues befüllt werden sollen.
Guckst du Muster und fragst dann nochmals nach.

Lv85_img


Mehere Queues lesen und schreiben.... - Schorschi79 - 08.11.2009 15:31

Hallo,

danke für die Hilfe.

Jetzt hab ich auch kapiert und hinbekommen.

Nen schönen Sonntag noch.

Gruss,
Schorsch.