各位老师:
本人在对NI6015的采集函数进行学习的时候,在NI提供的函数里没找到控制FIFO缓存读取的函数,比如说半满或全满时读取,那位能告诉我怎么样判断FIFO的状况。
在NI给的示例中,我发现了DAQmxErrChk (DAQmxRegisterEveryNSamplesEvent(taskHandle,DAQmx_Val_Acquired_Into_Buffer,10,0,EveryNCallback,NULL));
这个函数,他通过不断调用回调函数EveryNCallback来连续把数据采集到data数组中,
但我在MFC中用的时候,却不能进入回调函数EveryNCallback中,请问各位谁知道是怎么回事,改怎么解决呢?
在这里先谢谢大家!
刘长青
已解决! 转到解答。
DAQmx 在读函数里面就有读取缓存的设置,例如
DAQmxReadAnalogF64 (TaskHandle taskHandle, int32 numSampsPerChan, float64 timeout, bool32 fillMode, float64 readArray[], uInt32 arraySizeInSamps, int32 *sampsPerChanRead, bool32 *reserved);
其中的numSampsPerChan参数就是指定每满多少个点读一次,默认值是-1,即有多少读多少,可以参考DAQmx帮助获得更多的信息。 如果实现每多少个数读一次的话,是不需要用到事件处理的DAQmxRegisterEveryNSamplesEvent的函数,该函数用于自定义操作手法的时候。至于为什么你在MFC中调用的不进去的话,需要提供更多的问题细节,不过建议你直接用读函数里面的参数设置