Hi all,
I have a 6509 PXI module. I would like to write an array of values across multiple digital output lines. I have been looking at the NI examples, but I'm missing something. The code snippet I have, is as follows:
int PxiError = 0;
TaskHandle taskHandle=0;
uInt8 digitalWritedataArray[32] {0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,};
TaskHandle taskHandle=0;
uInt8 digitalWritedataArray[32] {0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,};
//For sake of argument
char errBuff[2048]={'\0'};
int32 written=1;
char errBuff[2048]={'\0'};
int32 written=1;
#define DAQmxErrChk(functionCall) if( DAQmxFailed(PxiError=(functionCall)) ) goto Error; else
// DAQmx Configure Code
DAQmxErrChk (DAQmxCreateTask("",&taskHandle));
DAQmxErrChk (DAQmxCreateTask("",&taskHandle));
DAQmxErrChk (DAQmxCreateDOChan(taskHandle,"PXI1Slot6/port0:5","Digital Outputs 1",DAQmx_Val_ChanForAllLines));
//Activate all lines, over ports 0-5.
// DAQmx Start Code
DAQmxErrChk (DAQmxStartTask(taskHandle));
DAQmxErrChk (DAQmxStartTask(taskHandle));
DAQmxErrChk (DAQmxWriteDigitalLines(taskHandle,1,1,10.0,DAQmx_Val_GroupByChannel,digitalWritedataArray,&written,NULL));
//I want to write each value in 'digitalWriteArray' to each line.
//Error handling
Error:
if( DAQmxFailed(PxiError) )
DAQmxGetExtendedErrorInfo(errBuff,2048);
if( DAQmxFailed(PxiError) )
DAQmxGetExtendedErrorInfo(errBuff,2048);
if( taskHandle!=0 ) {
// DAQmx Stop Code
DAQmxStopTask(taskHandle);
DAQmxClearTask(taskHandle);
}
DAQmxStopTask(taskHandle);
DAQmxClearTask(taskHandle);
}
Is this sufficient to write the array, 'digitalWritedataArray' across 32 lines, starting at port0, line 0? Or, is some loop necessary?
Any clarification would be great.
Thanks..
Paul