Dear reader
When I try to generate analog output on a PCI 6733 card, I get error -50352 - memory could not be allocated.
System: Ni-DAQmx 8.7.1, 3 GB RAM, Core-2-Duo 6600, Win2k SP4 (freshly restarted system - reproducible)
I don't really understand why...
I only it get it if nSamples >~5e6 (e.g. 6e6)
But memory should not (yet) be an issue (10e6 Samples x 8 chans x 2 bytes / Chan / Sample ) = 160 MBytes.
TaskHandle taskHandle6733AAna;
char errBuff[4096];
const int nSamples = 6e6;
short* pAnaBuffer6733A = new short[nSamples*8];
int error;
double dt=2e-6;
long written = 0;
unsigned long majVersion;
unsigned long minVersion;
DAQmxGetSysNIDAQMajorVersion(&majVersion); //majVersion 8
DAQmxGetSysNIDAQMinorVersion(&minVersion); //minVersion 7
error=DAQmxCreateTask("6733AAnaOutTask",&taskHandle6733AAna);
assert(error==0);
error = DAQmxCfgOutputBuffer(taskHandle6733AAna, 1e6);
// I get the error later on independent of the OutputBuffer setting
error=DAQmxCreateAOVoltageChan(taskHandle6733AAna,"Dev2/ao0:Dev2/ao7","",-10.0,10.0,DAQmx_Val_Volts,NULL);
DAQmxGetExtendedErrorInfo(errBuff,2048);
assert(error==0);
error=DAQmxCfgSampClkTiming(taskHandle6733AAna,"OnboardClock",1./dt,DAQmx_Val_Falling,DAQmx_Val_FiniteSamps,nSamples);
DAQmxGetExtendedErrorInfo(errBuff,2048);
assert(error==0);
error=DAQmxWriteRaw(taskHandle6733AAna,nSamples,0,60.0,pAnaBuffer6733A,&written,NULL);
// Here I get the error -50352
DAQmxGetExtendedErrorInfo(errBuff,2048);
assert(error==0);
error=DAQmxStartTask(taskHandle6733AAna);
DAQmxGetExtendedErrorInfo(errBuff,2048);
assert(error==0);
bool32 isDone = false;
while (!isDone) {
DAQmxIsTaskDone(taskHandle6733AAna, &isDone);
Sleep(100);
};
DAQmxClearTask(taskHandle6733AAna);
return 0;I appreadiate any help!!
Best Regards
Pascal
pascal.steiss@gmx.ch