' schrieb:Ich möchte ja in meinem Registerreiter "Extras" die Parameter einstellen können. Ich hab dann gedacht, dass ich dort den Queue anfordere und in dann in den anderen Cases wieder rausholen kann.
Da ich hier wie immer kein LV hab, also alles in Prosa.
Zu den Queues:
Queues machen nur Sinn, wenn du parallele Prozesse hast, die ja unabhängig von einander laufen sollen. Also: Du brauchst (mindestens) zwei paralelle While-Schleifen (noch mehr Sinn macht eine Queue bei parallelen SubVIs). In der einen würde der Reiter "Extras" bearbeitet werden, in der anderen der Reiter "FFT". Und zwar immer unabhängig von einander. Auch die Sache mit dem Start/Stopp-Button wäre dann automatisch eliminiert. In der While-Schleife "Extras" würde die Queue beschrieben werden, in der anderen ausgelesen.
Angefordert wird die Queue außerhalb beider While-Schleifen. Die Referenz der Queue (der Datenausgang oben rechts) wird nun parallel in beide While-Schleifen hineingeführt. In "Extras" wird die Queue mit dem entsprechenden Element beschrieben, in "FFT" ausgelesen. Möglicherweise reicht in deinem Falle auch ein Melder anstelle einer Queue.
Zu deinem Programm:
Du brauchst nicht unbedingt Queues/Melder. Mit den lokalen Variablen geht es auch.
Probier mal "Extra" in eine eigene While-Schleife zu legen (ganz einfach: Einfach rausschieben in neue While-Schleife und (fast) fertig). Aber beim Testen dann Vorsicht mit den Sound-VIs. Du musst unterbinden, dass nicht beide While-Schleifen gleichzeitig auf die Sound-Ressourcen zugreifen wollen. Dieses Problem hättest du im übrigen auch bei Verwendung von Queues. Durch das Umlegen der einzelnen Abläufe ("Extras", "FFT" etc) in eine eigene While-Schleife werden automatisch diverse Probleme, die beim Tab-Umschalten entstehen, eliminiert.
Hinweis:
Eigentlich muss es auch so gehen, wie du das bereits hast. Problem ist nur das Umschalter der Reiter und die Sache mit den Ressourcen.
Vorschau:
Eigenlich sollte es so sein: Es gibt ein SubVI, das mit einer Statemachine alles das macht, was mit den Sound-VIs zusammen hängt. Dieses SubVI wird durch eine Queue gesteuert und liefert Daten per Melder (oder Queue) zurück. Dann gibt es nämlich wie von selbst keine Probleme mehr mit den Ressourcen und der TabSheet-Umschalterei. Dieses Verfahren würde aber einen kompletten Umbau deines bisherigen Programmes erfordern.