Quantcast
Channel: LabWindows/CVI topics
Viewing all articles
Browse latest Browse all 5357

DAQmx DAQmxRegisterEveryNSamplesEvent when is called.

$
0
0

HI, I am confued about when is the event DAQmxRegisterEveryNSamplesEvent  called :

Here is howa create my task, with many channels:

 

DAQmxCreateTask("",&device.taskHandle);

 

DAQmxCreateAIVoltageChan(device.taskHandle,"Dev1/ai0","",DAQmx_Val_Cfg_Default,-10,10,DAQmx_Val_Volts,NULL);

DAQmxCreateAIVoltageChan(device.taskHandle,"Dev1/ai1","",DAQmx_Val_Cfg_Default,-10,10,DAQmx_Val_Volts,NULL);

DAQmxCreateAIVoltageChan(device.taskHandle,"Dev1/ai2","",DAQmx_Val_Cfg_Default,-10,10,DAQmx_Val_Volts,NULL);

 

samplesRate = 1000;

DAQmxCfgSampClkTiming(device.taskHandle,"",samplesRate,DAQmx_Val_Rising,DAQmx_Val_ContSamps,100);

                      
DAQmxRegisterEveryNSamplesEvent(device.taskHandle,DAQmx_Val_Acquired_Into_Buffer,10,0,EveryNCallback,NULL);                     

 

DAQmxRegisterDoneEvent(device.taskHandle,0,DoneCallback,NULL);
                      

data = malloc(100*numChannels*sizeof(float64));                   
DAQmxStartTask(device.taskHandle);

}

 

int32 CVICALLBACK EveryNCallback(TaskHandle taskHandle, int32 everyNsamplesEventType, uInt32 nSamples, void *callbackData)  

{

    int numRead = 0;
    DAQmxReadAnalogF64(device.taskHandle,100,10.0,DAQmx_Val_GroupByChannel ,data,100 * numChannels,&numRead,NULL);

}

 

 

When is here fired EveryNCallback, I tough when the buffer data has 10 samples, but when i call this, it has the 100 samples readed for each channel.

If the sample rate is 1000 samples per seocnd per channel it would be 0.3 seconds for 100 samples per channel(3). And if

EveryNCallback is called every 10 samples then it should be called every 0.030 seconds ??? or I am wrong.

 

Thank you very much in advance.

 

 

 

 

 


Viewing all articles
Browse latest Browse all 5357


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>