Hi,
I have problem when I call the NI USB 6008 read function in Python script.
I implement the read function in C++ and the function is verified in C++. When I call the read function in python script, the read function always outputs the initial value which is 0.0 . I use swig between python and C++.
C++ code of the reading function:
void DAQAIRead::read()
{
mlString task( "AITask" );
TaskHandle handle;
// Channel parameters
char chan[] = "Dev1/ai0";
float64 min = -10.0;
float64 max = 10.0;
// Timing parameters
uInt64 samplesPerChan = 1;
// Data read parameters
float64 data=0.0;
int32 pointsToRead = 1;
int32 pointsRead;
float64 timeout = 10.0;
int32 nrSamps=0;
int32 rv =0;
// Init
rv = DAQmxBaseCreateTask( task.c_str(), &handle );
cout<<"DAQmxBaseCreateTask:handle:"<<handle<<endl<<"&handle"<<&handle<<endl;
rv = DAQmxBaseCreateAIVoltageChan(handle,"Dev1/ai0","",DAQmx_Val_Cfg_Default,min,max,DAQmx_Val_Volts,0);
rv = DAQmxBaseStartTask(handle);
rv = DAQmxBaseReadAnalogF64(handle,DAQmx_Val_Auto,10.0,DAQmx_Val_GroupByChannel,&data,1,&nrSamps,0);
rv = DAQmxBaseStopTask(handle);
cout<<"data :"<<data<<endl;
}
I get correct data value by calling from C++. If I call this function from Python script. I always get 0.0 which is the initial value of data.
Is there anyone has similiar problem and would like to share your idea about how to solve it?
Thank you!!