Hi,
I'm using a PCIe-6361 on Ubuntu 20.04, with the python-nidaqmx wrapper. I've encountered an issue with register_every_n_samples_transferred_from_buffer_event(), which is a direct wrapper to DAQmxRegisterEveryNSamplesEvent, on AO (and DO) tasks: if the number of samples is set < 2048, the function returns no error... but actually the callback is never called. With any value >= 2048, the callback works fine. In the simulated device, this does work fine for all values.
It seems to be unrelated to the actual sample rate (which usually is quite small, so 2047 samples is > 0.1s). I can workaround this by hard-coding a limit of 2048 samples... but as I don't know what is causing this issue and cannot find any reference to this limitation in the documentation, I'm not certain whether this will always work. Especially, it needs to work with various sampling rate, and other variations of settings. Also I'd like eventually to support other NI-DAQ boards with the same code, so it'd be useful to know if that's dependent on the device! The AO task uses 2 channels, and report a output_onbrd_buf_size = 4095. Could it be related?
Is this a known limitation? If so, why wouldn't the call to DAQmxRegisterEveryNSamplesEvent() fail?
Thanks in advance for any insight!
Cheers,
Éric