Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

Simultaneous DIO with DAQmx in C or Cpp

Hello,
 
I want to realise an SPI Bus with a DIO6534. Therefore I need to read and write simultaneously. In former traditional DAQ concept I simply started DIG_Block_In before DIG_Block_Out and it worked pretty fine in parallel. Hence I assume the multithreading was handled by the DAQ driver. Now I use DAQmxReadDigitalU32/DAQmxWriteDigitalU32 and it only works sequentially. I neither know if I'm doing any mistake nor can I find any suitable examples. Thanks in advance if anybody can help!
 
Here's a code snippet:

DAQmxCreateTask("", &taskHandleRead);

DAQmxCreateTask("", &taskHandleWrite);

DAQmxCreateDIChan(taskHandleRead, "Dev1/port0", "", DAQmx_Val_ChanForAllLines);

DAQmxCfgChangeDetectionTiming(taskHandleRead,"Dev1/port0/line0", "Dev1/port0/line0", DAQmx_Val_FiniteSamps , numSampsPerChanRead);

DAQmxSetDIDataXferMech(taskHandleRead, "Dev1/port0", DAQmx_Val_DMA);

DAQmxCfgInputBuffer(taskHandleRead, sampleBuffer);

//DAQmxCfgDigEdgeStartTrig (taskHandleRead, "/Dev1/PFI2", DAQmx_Val_Rising);

DAQmxCreateDOChan(taskHandleWrite, "Dev1/port2", "", DAQmx_Val_ChanForAllLines);

DAQmxSetDODataXferMech(taskHandleWrite, "Dev1/port2", DAQmx_Val_DMA);

DAQmxCfgSampClkTiming (taskHandleWrite, "OnboardClock", clockRate, DAQmx_Val_Rising, DAQmx_Val_FiniteSamps, numSampsPerChanWrite);

DAQmxCfgOutputBuffer(taskHandleWrite, numSampsPerChanWrite);

DAQmxWriteDigitalU32(taskHandleWrite, numSampsPerChanWrite, false, 10.0, DAQmx_Val_GroupByScanNumber, writeArray, sampsPerChanWritten, reserved);

DAQmxStartTask(taskHandleRead);

DAQmxReadDigitalU32(taskHandleRead, numSampsPerChanRead, 5.0, DAQmx_Val_GroupByScanNumber, readArray, arraySizeInSamps, &sampsPerChanRead, reserved);

DAQmxStartTask(taskHandleWrite);

DAQmxWaitUntilTaskDone(taskHandleWrite,10.0);

DAQmxWaitUntilTaskDone(taskHandleRead,10.0);

DAQmxStopTask(taskHandleWrite);

DAQmxStopTask(taskHandleRead);

DAQmxClearTask(taskHandleWrite);

DAQmxClearTask(taskHandleRead);

0 Kudos
Message 1 of 1
(2,853 Views)