基于NI 数据采集器的QT C++应用程序开发测试输出模拟电压信号 天天最资讯
前言:最近项目需要用到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;}测试结果:
代码运行正常。
输出正常。————————————————审核编辑:汤梓红
关键词:
您可能也感兴趣:
今日热点
为您推荐
“清凉一夏趣巴东”,巴东邀请武汉游客开启探“奇”之旅
1杯白酒等于多少瓶啤酒?科学“计算公式”公布,看完再拼不吃亏_环球头条
事业单位的分类标准 事业单位分类标准
排行
最近更新
- 基于NI 数据采集器的QT C++应用程序开发测试输出模拟电压信...
- 高温再度“上线”!华北地区将再现大范围40℃以上高温 焦点精选
- 县实验中学经典朗诵《满江红》荣获市级一等奖-天天热议
- wiko 5g 鸿蒙生态手机_wiko
- 每村补助30万元! 当前热议
- 世界观点:兰州财经大学工程监理服务遴选项目终止公告
- 云南省戒毒管理局联合昆明市西山区福海街道开展“6.26”普法...
- 用匠心坚守金融服务初心 每日关注
- 全球今亮点!我州备耕春耕工作圆满结束 期待一年好“丰”景
- 临沂两级法院突出打击重点 毒品犯罪宽严相济 世界今日报
- 刚刚,杭州的金色落日和一束彩虹惊艳全场!你见到了没?
- 浙江温州:崛起世界级鞋业产业集群
- 追光逐梦 思恩致远 石室联中(西区)毕业典礼温情满满 环球热讯
- 太原市人大执法大检查推动食品药品安全治理上台阶 当前热闻
- 今头条!报名2023年中级会计考试 报名信息表需要盖章吗?
- 省政府在京与部分部委举行工作会谈 毛伟明王志刚张玉卓出席
- 速递!广东爱塔馨安生物科技因保健食品质量不合格被通报
- 马士基订造6艘甲醇动力集装箱船
- 城市互联互通 产业串珠成链 文化交融互通 大湾区高质量发...
- 世界看热讯:顺鑫农业:拟转让顺鑫佳宇股权 剥离房地产业务
- 目标10万家 工信部引导中小企业走专精特新发展之路|世界速读
- 第12次!巴菲特累计抛售比亚迪超1.2亿股 持股比例不足9%
- 全球快报:从北漂到北青,有归属才能继续奋斗!
- 怀古诗的标题有哪些 高中语文古诗词必备知识点?
- 每日快讯!汽车巨头:裁员!美国又有“毒列车”脱轨!欧央行副...
- 全球快资讯:俄罗斯股市低开:俄罗斯RTS指数跌1.2%,俄罗斯MO...
- 土耳其里拉兑美元跌幅扩大至3%,续创历史新低
- 海锅股份: 董事会审计委员会实施细则(2023年6月修订)-世界速看料
- 罗曼股份(605289.SH):股东上海诚毅创投减持比例达1%
- 佰奥智能: 关于召开2023年第二次临时股东大会的通知
今日要闻
- 临沂两级法院突出打击重点 毒品犯罪宽严相济 世界今日报
- 环球关注:自制豆豉全过程?
- dns改成114.114.114有危险吗(dns服务器可能不可用) 天天快消息
- 太原市人大执法大检查推动食品药品安全治理上台阶 当前热闻
- 视点!功能升级!济南市民持一张社保卡便可满足就医、消费、出行三大需求
- 焦点短讯!送领导的高档礼物,如何制作牙签结构?细节决定成败,关键在于这些!
- F1赛车新游戏《New Star GP》上架:支持中文 观焦点
- 怀古诗的标题有哪些 高中语文古诗词必备知识点?
- 新动态:森源电气:入围江苏石油充电机招标项目
- 基于NI 数据采集器的QT C++应用程序开发测试输出模拟电压信号 天天最资讯