Robert, buffer size does matter. When you call WFM_DB_Config and set the 'stop
on old data' parameter to 1, NI-DAQ will halt the waveform output when data
that has already been output is encountered. At a given output rate, the
larger your buffer, the more time you will have to receive the message and
call WFM_DB_Transfer to write fresh data into one half of the buffer while
the other half is being output.
- Tim
Robert Pym wrote:
>Hi>>I'm developing an application which requires continuous multi-channel>analog
waveform output under Windows NT - eventually with multiple>output cards.
Using the Config_DAQ_Event_Message call I'm trying to>ensure that the half-buffer
always gets transferred (WFM_DB_Transfer)>in time to prevent NI-DAQ from
disabling output. I've configured the>callback to issue every N scans, where
N is 2052: my half-buffer is>2052*8 scans in size, all outputs enabled.>>I'm
specifying my own callback routine rather than using the Windows>PostMessage
route - the documentation is very unclear, but seems to>suggest this is the
better method.>>The event message is very sensitive to NT timing delays,
and the wave>output stops if other applications require any serious attention
(e.g.>moving a window) - we need to output at at least 30kHz.>>Does anyone
know whether there's a way to hook *directly* to the>interrupt handler so
that I can send the next buffer without any delay?>>Our application will
not tolerate *any* loss of data output - clearly>an interrupt is the only
way to guarantee this. The buffer size has no>effect (as long as it's >=FIFO
size, which it is) since NI-DAQ calls>precisely when it need the next half-buffer,
no matter what size that>may be.>>Any help would be much appreciated - I
know the hardware is capable but>I'm frustrated by apparent software limitations.>>Best
regards>>Rob>>Computer: Pentium III 550Mhz>O/S: Windows NT 4, Service Pack
4>NI Card: PCI-6713 (8-channel AO)>NI-DAQ version: 6.5.2>>>Sent via Deja.com
http://www.deja.com/>Share what you know. Learn what you don't.