[英]Error while running program in qt to read from DAQ
我有一個簡單的數據采集系統,可從NI USB 6009讀取模擬直流電壓。我還創建了一個qt控制台應用程序,以使用NIDAQmxbase功能。
.pro文件如下
QT += core
QT -= gui
TARGET = untitled4
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
LIBS += "C:\Users\nikhilmurthy161229\Documents\untitled3\nidaqmxbase.lib"
HEADERS += "C:\Users\nikhilmurthy161229\Documents\untitled3\NIDAQmxBase.h"
我在項目文件夾中包含了.lib文件和.h文件。
我的main.cpp文件如下所示
#include <QCoreApplication>
#include <stdio.h>
#include <NIDAQmxBase.h>
#define DAQmxErrChk(functionCall) { if( DAQmxFailed(error=(functionCall)) ) { goto Error; } }
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// Task parameters
int32 error = 0;
TaskHandle taskHandle = 0;
char errBuff[2048]={'\0'};
// Channel parameters
char chan[] = "nikhil\ai0";
float64 min = 0;
float64 max = 5;
// Timing parameters
uInt64 samplesPerChan = 1;
// Data read parameters
float64 data;
int32 pointsToRead = 1;
int32 pointsRead;
float64 timeout = 5;
DAQmxErrChk (DAQmxBaseCreateTask("",&taskHandle));
DAQmxErrChk (DAQmxBaseCreateAIVoltageChan(taskHandle,chan,"",DAQmx_Val_Cfg_Default,min,max,DAQmx_Val_Volts,NULL));
DAQmxErrChk (DAQmxBaseStartTask(taskHandle));
DAQmxErrChk (DAQmxBaseReadAnalogF64(taskHandle,pointsToRead,timeout,DAQmx_Val_GroupByChannel,&data,samplesPerChan,&pointsRead,NULL));
DAQmxErrChk (DAQmxBaseStopTask(taskHandle));
DAQmxErrChk (DAQmxBaseClearTask(taskHandle));
printf ("Acquired reading: %f\n", data);
Error:
if( DAQmxFailed(error) )
DAQmxBaseGetExtendedErrorInfo(errBuff,2048);
if( taskHandle!=0 ) {
DAQmxBaseStopTask(taskHandle);
DAQmxBaseClearTask(taskHandle);
}
if( DAQmxFailed(error) )
printf ("DAQmxBase Error %ld: %s\n", error, errBuff);
return a.exec();
}
但是,當我運行該程序時,出現以下錯誤“ DAQmxBase錯誤-200428:傳遞給任務中的任務/通道的值無效”
我已驗證設備名稱與NI MAX中的設備名稱相同,但問題仍然存在。
請幫忙
作為一個快速的猜測,我會讓你的陳變量
char chan[] = "nikhil\\ai0";
char數組可能在解釋反斜杠
DAQ設備名稱不正確。
即使您使用MAX將設備重命名為nikhil
,DAQmx Base枚舉設備的方式也有所不同。 使用lsdaq
實用程序查找設備名稱(可能是Dev1
),然后將chan
變量更改為使用發現的名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.