Quantcast
Channel: Digital I/O topics
Viewing all articles
Browse latest Browse all 2167

Writing an array to digital output lines

$
0
0

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,};
//For sake of argument
char errBuff[2048]={'\0'};
int32 written=1;

#define DAQmxErrChk(functionCall) if( DAQmxFailed(PxiError=(functionCall)) ) goto Error; else
 
// DAQmx Configure Code
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 (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( taskHandle!=0 ) {
 
// DAQmx Stop Code
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

 


Viewing all articles
Browse latest Browse all 2167

Trending Articles