HI, all
I would like to first thank Alan L for responding to my last message. It was helpful.
I am currently using ni 5122 in sampling data sets and EACH set consists of 400 triggered records
and each record contains 1024 points (So this 1024 X 400 matrix will constitute a single image).
The sampling rate is 33 Mhz(There is a reason for choosing this sampling frequency, plz do not
suggest me to increase the sampling frequency as a solution).
Since the trigger occurs at 10 KHz, it will take 40 milliseconds to acquire
a data set which corresponds to a single frame of image.
I am trying to configure my program ( I am using VC++) such a way that I fetch the data
from on-board memory of digitizer to main memory of host computer and perform DSP
on each triggered record while sampling rather than waiting for the entire data set (1024 X 400) to be collected.
The frequency of the trigger signal is 10 kHz, meaning that I have 100 usec for each triggered
record. Since I am using approximately 31 usec to sample the data, I have about 69 usec of idling
period bewteen each triggered record. So, I have attempted to utilize those idling period.
I have looked at "Acquiring data continuously" section of "High Speed Digitizer Help" manual.
From there, I found out that I can fetch triggered records while sampling is still going on.
The manual suggests me to play with the following attributes.
NISCOPE_ATTR_FETCH_RECORD_NUMBER
NISCOPE_ATTR_FETCH_NUM_RECORDS
with the family of
niScope_SetAttributeXXX and niScope_GetAttributeXXX functions.
I have attempted to change value of those attributes but
got the following error.
"The channel or repeated capability name is not allowed." This error also occured
when I attempted to just READ! (The functions I mentioned above appear immediately
before niScope_InitiateAcquisition function in my prog.)
I have also looked at the accompanying c example codes to remedy this,
but found a strange thing in the code. Within the example which uses
niScope_SetAttributeViInt32, the parameter channelList is set to VI_NULL
instead of "0", "1" or "0,1". Why?
As I mentioned earlier, I can get a single frame of image every 40 millisec
( 25 frame/sec), if everything works as I planned. Without fetching portion of
codes, my program currently generates about 20 frame/sec but when I include
the fetching codes, the frame rate decreases to 8 frame/sec.
If anybody has a better idea of reducing fetching time than the one I am using,
please help me.
Godspeed
joon