基于NI 数据采集器的QT C++应用程序开发测试输出模拟电压信号_焦点速递
时间:2023-06-27 09:56:14来源:恋

前言:最近项目需要用到NI的数据采集设备,之前的项目在使用NI的采集设备时更多用的labview编写相关程序,也能够快速搭建相关的采集平台,但是最近更多的使用的QT c++,前期的的其他工作均是有QT完成,所以这次采用QT C++平台编写相关程序,仅对QT调用NI设备API的配置做记录。


(相关资料图)

NI-DAQmx安装:NI官网下载DAQmx。

根据需要下载相应的版本,我下载的是最新版本。

下载完成之后,安装需要选择 ANSI C Support。

新建QT工程:工程可选择32位编译器或者64位编译器均可,添加外部库和头文件。网上很多人说需要选择32位编译器是因为没有找到相应的64位库导致。

64位库路径:

C:ProgramFiles (x86)National InstrumentsSharedExternalCompilerSupportClib64msvc

32位库路径:

C:Program Files (x86)National InstrumentsSharedExternalCompilerSupportClib32msvc

测试代码:测试代码是应用的NI提供的示例代码。

#include#include#include#include#define DAQmxErrChk(functionCall) if( DAQmxFailed(error=(functionCall)) ) goto Error; else#define PI 3.1415926535int32 CVICALLBACK DoneCallback(TaskHandle taskHandle, int32 status, void *callbackData);int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); int32 error=0; TaskHandle taskHandle=0; float64 data[1000]; char errBuff[2048]={"�"}; int i=0; for(;i<1000;i++)// data[i] = 0+9.95*sin((double)i*2.0*PI/50.0); data[i]=10-10*(double)i/1000; /*********************************************/ // DAQmx Configure Code /*********************************************/ DAQmxErrChk (DAQmxCreateTask("",&taskHandle)); DAQmxErrChk (DAQmxCreateAOVoltageChan(taskHandle,"Dev1/ao0","",-10.0,10.0,DAQmx_Val_Volts,NULL)); DAQmxErrChk (DAQmxCfgSampClkTiming(taskHandle,"",1000.0,DAQmx_Val_Rising,DAQmx_Val_ContSamps,1000)); DAQmxErrChk (DAQmxRegisterDoneEvent(taskHandle,0,DoneCallback,NULL)); /*********************************************/ // DAQmx Write Code /*********************************************/ DAQmxErrChk (DAQmxWriteAnalogF64(taskHandle,1000,0,10,DAQmx_Val_GroupByChannel,data,NULL,NULL)); /*********************************************/ // DAQmx Start Code /*********************************************/ DAQmxErrChk (DAQmxStartTask(taskHandle)); printf("Generating voltage continuously. Press Enter to interruptn"); getchar();Error: if( DAQmxFailed(error) ) DAQmxGetExtendedErrorInfo(errBuff,2048); if( taskHandle!=0 ) { /*********************************************/ // DAQmx Stop Code /*********************************************/ DAQmxStopTask(taskHandle); DAQmxClearTask(taskHandle); } if( DAQmxFailed(error) ) printf("DAQmx Error: %sn",errBuff); printf("End of program, press Enter key to quitn"); getchar(); return a.exec();}int32 CVICALLBACK DoneCallback(TaskHandle taskHandle, int32 status, void *callbackData){ int32 error=0; char errBuff[2048]={"�"}; // Check to see if an error stopped the task. DAQmxErrChk (status);Error: if( DAQmxFailed(error) ) { DAQmxGetExtendedErrorInfo(errBuff,2048); DAQmxClearTask(taskHandle); printf("DAQmx Error: %sn",errBuff); } return 0;}测试结果:

代码运行正常。

输出正常。————————————————审核编辑:汤梓红

标签:

  • 上一篇文章: 宝井村
  • 下一篇文章: 最后一页
  • 最新
  • 基于NI 数据采集器的QT C++应用程序开发测试输出模拟电压信号_焦点速递

    NI采集卡的C++驱动方式配置过程,代码编写,测试结果

  • 宝井村

    1、宝井村。2、隶属于黑龙江省依兰县愚公乡。3、位于愚公乡东北6公里处

  • 电脑无法正常进入系统怎么办?电脑不能正常关机怎么解决?

    电脑无法正常进入系统怎么办?方法一、自动修复电脑开机,马上按下

  • 观点:累计产天然气超50亿立方米!“深海一号”投产两年交出亮眼成绩单

    今天是我国首个自营超深水大气田“深海一号”投产两年的日子。两年来,

  • 1431元!AGM 三防平板推出_当前观察

    AGM近日在海外推出了一款名为PADP1的三防平板,售价为199美元(约1431

  • 敷面膜能敷多久?伤脸真的很危险?_快看点

    敷面膜的时间因人而异,通常建议每次敷面膜的时间不超过20分钟。如果您

  • 房地产公司是做什么的 房地产公司的特征是什么? 环球微头条

    房地产公司所谓房地产公司,是指从事房地产开发、经营、管理和服务

  • 热门:一英里是多少公里?英里和公里的区别是什么?

    1 英里=1 609344 千米(公里)英里和公里的区别:英里是英美制的长

  • 360度无盲区、响应时间0.1秒……自动驾驶车辆将在大运村上路_全球今亮点

    7月28日,成都大运会将正式开幕。成都大运村面积达80万平方米,超过110

  • 俄方称乌军使用“风暴之影”巡航导弹袭击赫尔松

    据俄罗斯媒体报道,俄方任命的赫尔松地方官员23日表示,乌军当天使用

  • 安徽2023高考录取分数线:文史本科一批495分,理工本科一批482分 环球快讯

    安徽2023高考录取分数线:文史本科一批495分,理工本科一批482分。

  • 端午佳节坚守岗位 琼州海峡万吨巨轮的“把关人” 天天信息

    陈凤武查看锚链打磨除锈现场。向勇刚摄陈凤武查看船底塞拆除。向勇刚摄

  • 华为终于有空收专利费了,日企、美企等,请准备付钱

    众所周知,华为目前是全球的专利大户,2022年华为PCT专利申请数量高达7

  • 全球微动态丨【国际3分钟】印度是“外企坟场”?

    48 2亿元或被印度没收,小米并非唯一被“特殊关照”的跨国企业。还有哪

  • 女子称41℃高温把盆里的衣服晒冒烟了-环球今亮点

    6月22日,河北廊坊。41℃高温天,女子出门回来后,发现盆里的衣服竟然

  • 专家解析为何北京这么热 当前快看

    6月22日至23日,北京观象台连续两天气温超40℃。近期,为何北京这么热

  • 旅游
    • 前装搭载率突破10%!智能座舱「多模态交互」进入整合周期_今日要闻

    • 全球观察:枭除_关于枭除概略

    • 传艺科技: 第三届董事会第二十三次会议决议公告

    • 普京:俄中超过80%贸易结算使用卢布和人民币