/*********************************************/
// DAQmx Configure Code
/*********************************************/
DAQmxErrChk (DAQmxCreateTask("",&AOtaskHandle));
DAQmxErrChk (DAQmxCreateAOVoltageChan(AOtaskHandle,"Dev2/ao0","",-10.0,10.0,DAQmx_Val_Volts,NULL));
DAQmxErrChk (DAQmxCfgSampClkTiming(AOtaskHandle,"",SampleRate,DAQmx_Val_Rising,DAQmx_Val_FiniteSamps,SampleNumber));
DAQmxErrChk (GetTerminalNameWithDevPrefix(AOtaskHandle,"ao/SampleClock",trigName)); printf("%s\n", trigName);
DAQmxErrChk (DAQmxCreateTask("",&DOtaskHandle));
DAQmxErrChk (DAQmxCreateDOChan(DOtaskHandle,"Dev2/port0/line0","",DAQmx_Val_ChanPerLine));
DAQmxErrChk (DAQmxCfgSampClkTiming(DOtaskHandle,trigName,SampleRate,DAQmx_Val_Rising,DAQmx_Val_FiniteSamps,SampleNumber));
/*********************************************/
// DAQmx Write Code
/*********************************************/
DAQmxErrChk (DAQmxWriteDigitalLines(DOtaskHandle,SampleNumber,0,10.0,DAQmx_Val_GroupByChannel,DOdata,&DOwritten,NULL));
DAQmxErrChk (DAQmxWriteAnalogF64(AOtaskHandle,SampleNumber,0,10.0,DAQmx_Val_GroupByChannel,data,&AOwritten,NULL));
printf("%d samples written, press any key to start output\n",AOwritten); getchar();
/*********************************************/
// DAQmx Start Code
/*********************************************/
DAQmxErrChk (DAQmxStartTask(DOtaskHandle));
DAQmxErrChk (DAQmxStartTask(AOtaskHandle));
/*********************************************/
// DAQmx Wait Code
/*********************************************/
DAQmxErrChk (DAQmxWaitUntilTaskDone(AOtaskHandle,DAQmx_Val_WaitInfinitely));