01-12-2007 08:52 AM
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);