08-07-2008 12:15 PM
channelName =
"0,1,2,3,4,5,6,7";verticalRange = 2;
verticalOffset = 0.0;
verticalCoupling = NISCOPE_VAL_DC;
probeAttenuation = 1.0;
minRecordLength = 1;
refPosition = 0.0;
numRecords = 1;
enforceRealtime = NISCOPE_VAL_TRUE;
minSampleRate = 6e6;
maxNumSamplesPerFetch = 800000;
// Open the NI-SCOPE instrument handlehandleErr(niScope_init(resourceName,NISCOPE_VAL_FALSE,NISCOPE_VAL_FALSE,&vi));
// Configure some common propertieshandleErr (niScope_ConfigureVertical (vi, channelName, verticalRange, verticalOffset, verticalCoupling, probeAttenuation, NISCOPE_VAL_TRUE));
handleErr(niScope_ConfigureChanCharacteristics(vi,channelName,NISCOPE_VAL_50_OHMS,NISCOPE_VAL_BANDWIDTH_FULL));
handleErr (niScope_ConfigureHorizontalTiming (vi, minSampleRate, minRecordLength,refPosition, numRecords, enforceRealtime));
// Configure software trigger, but never send the trigger. // This starts an infinite acquisition, until you call niScope_Abort // or niScope_close
handleErr (niScope_ConfigureTriggerSoftware (vi, 0.0, 0.0));
// Start acquiring datahandleErr (niScope_InitiateAcquisition (vi));
// specify the number of waveformshandleErr (niScope_ActualNumWfms (vi, channelName, &numWfms));
while(1){
handleErr(niScope_FetchBinary16 (vi, channelName, 0.0, maxNumSamplesPerFetch, (ViInt16*)waveformPtr1, wfmInfo1));
// please see alternative save attempt belowfwrite(waveformPtr1,
sizeof(ViInt16),wfmInfo1[0].actualSamples*numWfms,ofFile);ProcessEvent();
}
// alternative save attemptViInt16* ptrData = ArgList.waveformPtr1;
for(int ii=0;ii<iChannels;++ii){
fwrite(&ArgList.wfmInfo1[ii].actualSamples,
sizeof(ViInt32),1,ofFile);fwrite(ptrData,
sizeof(ViInt16),ArgList.wfmInfo1[ii].actualSamples,ofFile);ptrData += ArgList.wfmInfo1[ii].actualSamples;
cout << ArgList.wfmInfo1[ii].actualSamples <<
" "; // this always shows the same number of samples for each Fetch command}
cout << endl;
08-08-2008 09:22 AM
08-11-2008 12:54 PM
08-11-2008 05:56 PM