Measurement Studio for VC++

cancel
Showing results for 
Search instead for 
Did you mean: 

Simultaniously Input / Output

Hello,

 

i tried to Output an analog signal and read it simultaneously with  Borland C++ Builder 6.0 and a NI-DAQ 6115 Card.

That is the code I’m using:

/*********************************************/


/*/ DAQmx Configure Code


/*********************************************/


/*SEND OUTPUT*/


DAQmxErrChk (DAQmxCreateTask("",&taskHandle));


DAQmxErrChk (DAQmxCreateAOVoltageChan(taskHandle,"Dev1/ao0","",-10.0,10.0,DAQmx_Val_Volts,NULL));


DAQmxErrChk (DAQmxCfgSampClkTiming(taskHandle,"",sampleRate,DAQmx_Val_Rising,DAQmx_Val_FiniteSamps,transcount));

/*READ AI0*/

DAQmxErrChk (DAQmxCreateTask("",&taskHandle1));


DAQmxErrChk (DAQmxCreateAIVoltageChan(taskHandle1,"Dev1/ai0","",DAQmx_Val_Cfg_Default,-10.0,10.0,DAQmx_Val_Volts,NULL));

DAQmxErrChk (DAQmxCfgSampClkTiming(taskHandle1,"",100,DAQmx_Val_Rising,DAQmx_Val_FiniteSamps,1000));

/*********************************************/


/*/ DAQmx Write Code


/*********************************************/

DAQmxErrChk (DAQmxWriteAnalogF64(taskHandle,1000,0,10.0,DAQmx_Val_GroupByChannel,voltageOutput,&written,NULL));

/*********************************************/


/*/ DAQmx Read Code


/*********************************************/

DAQmxErrChk (DAQmxReadAnalogF64(taskHandle1,10000,10.0,DAQmx_Val_GroupByChannel,input1,10000,&read,NULL));

/*********************************************/


/*/ DAQmx Start Code


/*********************************************/


DAQmxErrChk (DAQmxStartTask(taskHandle1));


DAQmxErrChk (DAQmxStartTask(taskHandle));


0 Kudos
Message 1 of 2
(3,084 Views)
second part

---------------------------

/*********************************************/


/*/ DAQmx Stop Code


/*********************************************/

DAQmxStopTask(taskHandle);


DAQmxClearTask(taskHandle);

DAQmxStopTask(taskHandle1);


DAQmxClearTask(taskHandle1);

Error:


if( DAQmxFailed(error) )


DAQmxGetExtendedErrorInfo(errBuff,2048);


if( taskHandle!=0 ) {

/*********************************************/


 /*/ DAQmx Stop Code


/*********************************************/

DAQmxStopTask(taskHandle);

DAQmxClearTask(taskHandle);

DAQmxStopTask(taskHandle1);

            DAQmxClearTask(taskHandle1);

      }

      if( DAQmxFailed(error) ){

            Application->MessageBoxA(("DAQmx Error: %s\n",errBuff),"ERROR");

                errorLog = true;


}

  for(int i = 0; i < 1000; i++){

   asLine += input1[i];


asLine += ";";


             
asLine += "\n";

  }

But somehow I don’t get the input I expected. Have You any idea how I can solve this problem?

Thanks in advance 


0 Kudos
Message 2 of 2
(3,082 Views)