' schrieb:Event ist etwas, das vom Betriebssystem unterstützt wird, und von daher performant und CPU-schonend.
Oh! Zwei Sachen:
Du gehörst jetzt als LabVIEW-Programmierer einer höheren Kaste an. In dieser Kaste zählen Denkweisen, die man sich als C++- respektiver OOP-Programmierer angeeignet hat, nicht mehr viel. Hier zählen Datenfluss und Error-Cluster-Sequenzierung. Von vorne herein also zu denken, ich nehm ein Event, ist falsch, viel zu viele Ebenen zu tief. Zuerst muss du denken: Wie bekomme ich meine Daten per Datenfluss von der Karte auf das Osci-Bild? ... Ein Teil dieses Datenflusses ist das Verwenden von Queues. Queues stellen einen imaginären Datenflus dar.
Wenn du sagt, Event ist etwas vom Betriebssystem Unterstütztes, dann unterschlägst du die LV-Runtime. Es ist noch lange nicht gesagt, dass ein Event vom Betriebssystem kommt. LV respektive seine RT bohren sich dermaßen tief ins Betriebssystem ein, da glaube ich gerne, dass so mancher Event am Betriebssystem vorbei alleine von der LV-RT gemanagert wird.
Zitat:Daher müssen die Daten ja mit einer Art DAQ-MX-read funktion als Reaktion auf das event gelesen werden.
Hab ich kein Problem mit. Es gibt also solche und solche Events. Nur:
Wenn dem jetzt so ist, ist das ja noch schlimmer: Was ist denn, wenn die Eventbearbeitung (aus welche Gründen auch immer, sag ich immer) zu spät kommt: dann läuft der Puffer über. Und dann ist aber das Verfahren, die Task explizit in einer
eigenen, parallelen Loop zu bearbeiten und die Daten per Queue zu verschicken, prinzipiell sicherer. Den ganzen Zusatzaufwand mit der Event-Sequenz und dem Bereitstellen des DAQmx-Events kann ich mir also sparen.
Noch geschwind ein weiteres Wort zu "sampelratenunabhängig":
"Samplerate" ist eine Eigenschaft einer bestimmten Ebene innerhalb einer hierarchischen Struktur. Und zwar der Ebene "Daten Samplen und in Puffer ablegen". Diese Ebene befindet sind (weit?) unterhalb der Ebene, die für das Auslesen des Puffers (DAQmx-Read) zuständig ist. Auch in LV gilt das Prinzip der Kapselung, zu deutsch: Was interessieren mich Parameter, die einer anderen Ebene gehören (von Initialisieren diverser Ebenen mal abgesehen)? Ich (eine beliebige Ebene) brauch die nicht! So gesehen, sollte die Ebene "DAQmx-Read" also sampelratenunabhängig sein. Eine solche Denkweise resultiert aus der Überlegung, dass meine Probleme, die ich mit Entwicklung und Debugging habe, mit der Anzahl der Parameter steigen (respektive sinken).