LabVIEWForum.de
Fehler 4801 "invalid task refnum" - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Fehler 4801 "invalid task refnum" (/Thread-Fehler-4801-invalid-task-refnum)



Fehler 4801 "invalid task refnum" - banman - 23.02.2011 15:03

Hallo,


Kann mir vielleicht jemand von euch sagen, warum ich in dem Blockdiagram den Fehler 4801 "Invalid sound task refnum. No sound driver is available for use, or the given GUID is not a valid DirectSound device ID." angezeigt bekomme?

Prinzipiell möchte ich mit dem VI ein und dasselbe MLS-Signal, welches ich links generiere 2x abspielen (mitte, rechts). mit der Event Struktur möchte ich bewirken, dass auf dem Frontpanel per Knopfdruck (Pos.1) die erste Messung (Soundausgabe, -aufnahme) und per Knopfdruck (Pos.2) die 2. Soundausgabe und Aufnahme beginnt. Rechts neben dem VI "FFT*" kommt nichts mehr. später ja um die aufgenommenen Werte ins Verhältnis zu setzen, aber soweit bin ich im Moment noch nicht.


Wär super wenn mir jemand Tips geben könnte, oder sagen könnte, was Fehler 4801 genau heißt.

Danke schonmal

Banman


[attachment=32449]


RE: Fehler 4801 "invalid task refnum" - GerdW - 23.02.2011 15:50

Hallo,

im ersten Event löscht du deinen Sound-Task. Da kann das zweite Event natürlich nicht mehr mit der TaskID arbeiten...

Warum überhaupt eine Sequenz mit zwei Eventstrukturen? Pack doch alles in eine Eventstruktur mit 2 EventCases!


RE: Fehler 4801 "invalid task refnum" - A.Berndsen - 23.02.2011 16:57

Hallo Banman,

ich kann Gerd nur recht geben.
Was ich unterstreichen möchte: Zwei Eventstrukturen gehören nicht in ein VI.
Das hat schon große Probleme gegeben.
Mach es wie Gerd es vorgeschlagen hat.

Grüße
Andreas


RE: Fehler 4801 "invalid task refnum" - banman - 24.02.2011 07:44

Guten Morgen,

Ok das wusste ich nicht Huh, aber gut zu wissen. Ich werde das gleich mal ausprobieren.

Ich selber habe mal den Weg eingschlagen ein zweiten Sound output configure einzubauen, was geklappt hat, aber wenn schon der Fehler bei 2 Eventstrukturen liegt, werde ich lieber da ansetzen ^^

Danke auf jeden Fall für den Hinweis.

Viele Grüße
Banman

Edit: Was mir aber grade noch einfällt: Ich brauche die Werte aus beiden Messungen, da diese im Nachhinein verglichen werdes sollen.
Soweit ich das bisher ausprobiert habe ist die Eventstruktur nachdem ein Case durchgeführt wurde, abgearbeitet und der andere Case wird gar nicht mehr abgefragt.
Oder gibt es da eine Möglichkeit beide Cases ausführen zu lassen, die ich bisher noch nicht kenne?
Muss es doch eigentlich?!

Edit 2:
Ich hab mal die Suchfunktion benutzt (natürlich erst nachdem ich hier geantwortet habe Wink-2) und habe folgende Thread gefunden:

http://www.labviewforum.de/Thread-Problem-Ereignisstruktur?highlight=ventstruktur

im #10 wurde von Lucki ein Beispiel VI hochgeladen, welches ich nun ausprobiere.

P.S. a) Wie kann ich Text im Editor durchstreichen?
b) Ich hab mal gesehen, dass es die Möglichkeit gibt direkt Links zu Antworten einzuügen, sodass man direkt zum Beitrag #10 geleitet wird, aber ich weis leider nicht wie?!


RE: Fehler 4801 "invalid task refnum" - NWOmason - 24.02.2011 09:01

(24.02.2011 07:44 )banman schrieb:  Soweit ich das bisher ausprobiert habe ist die Eventstruktur nachdem ein Case durchgeführt wurde, abgearbeitet und der andere Case wird gar nicht mehr abgefragt.
Oder gibt es da eine Möglichkeit beide Cases ausführen zu lassen, die ich bisher noch nicht kenne?
Muss es doch eigentlich?!

Also die Eventstrukur wird bei dir deswegen nur einmal ausgeführt, da Sie nicht in einer Schleife liegt. D.h. Die Eventstruktur wartet bis ein registriertes Event kommt und führt dann bei Auftreten des Events den dazugehörigen Code aus. Würde die Eventstruktur in einer Whileschleife liegen, würde sich nach dem ersten Event wieder warten, bis das nächste Event auftritt. Deswegen eine Evenstruktur für beide Events verwenden und Schleife dazu Wink

(24.02.2011 07:44 )banman schrieb:  P.S. a) Wie kann ich Text im Editor durchstreichen?
b) Ich hab mal gesehen, dass es die Möglichkeit gibt direkt Links zu Antworten einzuügen, sodass man direkt zum Beitrag #10 geleitet wird, aber ich weis leider nicht wie?!

a) durchstreichen geht mit
Code:
[s] [/s]

b) Das geht auch und zwar in dem du bei einem Beitrag auf die Zahl daneben (z.B. #2) klickst:

RE: Strike-through?
http://www.labviewforum.de/Thread-Strike-through?pid=114944#pid114944


Beste Grüße,
NWO


RE: Fehler 4801 "invalid task refnum" - banman - 24.02.2011 09:31

Zitat:Also die Eventstrukur wird bei dir deswegen nur einmal ausgeführt, da Sie nicht in einer Schleife liegt. D.h. Die Eventstruktur wartet bis ein registriertes Event kommt und führt dann bei Auftreten des Events den dazugehörigen Code aus. Würde die Eventstruktur in einer Whileschleife liegen, würde sich nach dem ersten Event wieder warten, bis das nächste Event auftritt. Deswegen eine Evenstruktur für beide Events verwenden und Schleife dazu

Ok Schleife ist drum. Zwei mal hintereinander ausführen klappt auch, nur werden die Werte aus dem ersten Event nach beenden der Schlefe gelöscht und es stehen nur noch die aus dem 2. Event zur Verfügung. Danke schon mal dafür.

Ich hba mal versucht das mit "Indizierung aktivieren" zu lösen, sodass aus meinen Daten, die in einem 1dim. Array stehen in ein Mehrdimensionales Array geschrieben werden. Das klappt auch so fast (muss ich noch kontrollieren, ob alle Daten dann da sind). Dieses Array müsste ich dann aber wieder umformen. Das scheint mir aber nicht die ganz eleganteste Möglichekteit zu sein. Das geht doch bestimmt noch anders?!

Viele Grüße

und das mit dem Durchstreichn funnktioniert auch Big Grin