基于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;}测试结果:
代码运行正常。
输出正常。————————————————审核编辑:汤梓红
关键词:
您可能也感兴趣:
今日热点
为您推荐
蔡徐坤事件升级为法治事件!女方晒调解书,蔡徐坤与母亲遭到传唤|环球即时看
V观财报|新芝生物“80后”董事、总经理钟文明辞职,公司上市刚满八月
惨遭交易!乔治:明年定能帮助快船夺冠,希望鲍尔默再相信我一次|环球资讯
排行
最近更新
- 基于NI 数据采集器的QT C++应用程序开发测试输出模拟电压信号
- 中国水果大省哪家强:浙江杨梅产值或超50亿,河南西瓜产量居首
- 【环球聚看点】苏州望亭宅基村党委与望电部室一党支部联合开...
- 宋集村|世界新视野
- 助力河南省进出口贸易增长 首趟郑州至东盟农产品出口专列发...
- 家门口小菜店也有了“舌尖上的安全阀”,浙江的生鲜门店“上...
- 古浪县中医医院信息系统维保服务采购项目-单一来源中标公示
- 马克西姆古典跨界钢琴演奏会将登陆昆明 6月28日正式开票
- 完美邮局官网登陆下载_完美邮局官网|天天新消息
- 一季度营收跌破千万,一起教育走到崩溃边缘?
- 王焰新:职业教育转型升级体现在“六要” 天天热资讯
- 初三二次函数万能口诀 二次函数的应用)
- 【天天聚看点】席琳迪翁插曲大全(死待2的英文歌太好听了
- cfp考试报名入口官方_CFP考试报名流程与报考指南
- 天天精选!2023年06月25日全国芋头报价分析
- 环球最资讯丨公共 | 海淀新青年舞动潮风采!“爱尚·三山五...
- 开放式提问测试_开放式提问-全球信息
- 当前看点!北京市汽车摇号查询 北京汽车摇号查询网上查询
- 每日简讯:医师注册健康检查表 医师注册健康体检表怎么填
- 小学语文教学研究与实践(关于小学语文教学研究与实践介绍)
- 明星爱豆是什么意思_爱豆是什么意思
- 俄罗斯内战 | 国防部长绍伊古首露面,赴俄乌冲突前线视察
- 提亮肤色淡斑的护肤品排行榜_提亮肤色
- 北京发布高温黄色预警
- “童心向党”歌咏比赛 推进“四史”教育 赓读红色血脉_每日热文
- dnf成长胶囊怎么没有了_dnf成长胶囊
- 显卡测试软件哪个好 显卡测试软件叫什么
- 气排球-焦点热文
- 每日看点!吃鱼刺卡在喉咙里怎么办_吃鱼
- 劳动竞赛为企业发展“赋能”