基于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++應用程序開發測試輸出模擬電壓信號 天天最資訊