How to seamless stream data with NiDAQ XOP ?

Hello, I would like to sample data seamless with the NiDAQ XOP. The DAQmx_Scan operation allows to setup an End Of Scan hook, where I can initiate the next DAQmx_Scan with the next buffer. However it takes on average ~70 ms until the hook is started after the previous Scan operation finished. One buffer runs for about 20 ms currently. So is there a way to accomplish a seamless streaming of the buffers? I could imagine that I tell the XOP the follow up buffers (waves) to use when the current Scan finishes, such that when the End Of Scan hook is executed the follow up buffer is already sampled to. In the hook code I can setup the next one and so on... Also 70 ms between the actual End Of Scan and the hook call is incredibly long. It looks like the NiDAQ XOP uses XOPIdle to 'react'. So for a 20 ms Scan I could never catch up, even with double buffering... Just thinking: If the hardware issues an interrupt that the Scan finished, couldn't the XOP request from Igor to be called as soon as possible? Best regards, Michael Huth
Have you looked into using a FIFO destination for the scan?
DAQmx_Scan /DEV=DeviceNameStr [/AVE=nAverage /BKG[=doBackground] /CLK={clockSpec}
 /ERRH=ErrorHookStr /EOSH=EndOfScanHookStr /PAUS={pauseTriggerSpec} /RPT[=repeatSpec]
/RPTC[=repeatSpec] /RPTH=RepeatHookStr /RTRG={refTrigSpec} /SINT=sampleInterval /STRT[=startSpec]
 /TRIG={trigspec} [WAVES=WaveParameterString] [FIFO=FIFOParameterString]

Executes an analog input scanning operation acquiring data into Igor waves or an Igor FIFO.
You must choose either WAVES=WaveParameterString or FIFO=FIFOParameterString
Since you sent a bug report to us regarding FIFOs and /RPTC, I guess you have discovered those possible solutions to your problem. I will shortly get to your bug report about the use count for a FIFO. John Weeks WaveMetrics, Inc. support@wavemetrics.com