' schrieb:Bei "DAQmx Read" kann man "number of samples per channel" eingeben. Was ist das? habe ich 1000 Samples wenn ich 1000 eingebe? Ist das dann auch pro Schleifendurchlauf?
Also ich fang mal an diese Frage zu beantworten.
Die "number of samples" kommt zwei mal vor - und das macht die Sache noch verwirrender.[list]
[*]Im DAQmx Timing
Hier bezeichnet es sie Anzahl samples im Mode "finite Samples". Im Modus "continuos Samples" mach eine solche Angabe aber keinen Sinn, und da wird dieser Input umfunktioniert. Man gibt damit die Größe das Datenpuffers vor. Das ist natürlich verwirrend, denn die Inputbezeichnung "number od Samples" trifft dann überhaupt nicht mehr zu.<>
[*] DAQmxRead:
Die "number of Samples" ist die Anzahl von Sampels, die aus dem Datenbuffer gelesen werden, wobei es zwei Fälle gibt:
(i) es sind weniger als diese Anzahl in Buffer. Dann wartet DAQmxRead, bis die Anzahl im Buffer ist, bzw. wartet bis zum Timeout
(ii) Bei mehr Daten im Buffer wird die vorgegebene Anzahl sofort gelesen, das DAQmx wartet nicht.
Sonderfall: Anzahl Samples = -1. Es wird dann gewartet, bis 1 Sample im Buffer ist, ansonsten werden alle Daten aus dem Buffer gelesen.<>
[st]Ein Schleife, in der sich das DaqmxRead befindet, synchronisiert sich von selbst, da es auf die Daten wartet. Es ist also nicht erfoderlich, irgendwelche Waits dort hineinzusetzen. Ausnahme ist die erwähnten Voreinstellung -1, bei der (Ausgenommen den Fall, daß gar kein Daten im Buffer sind) nicht gewartet wird.
Das Wichtigste, was man sich verinnerlichen muß, ist jedenfalls: QAQmxRead hat in der Regel, wenn man nicht gerade Einzelwerterzeugung eingestellt hat, nichts mit der eigentlichen Datenerfassung zu tun. Es entnimmt lediglich die fertigen Daten aus dem Buffer.