




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1.1 LabWindows/CVI1.1.1 LabWindows/CVI概述LabWindows/CVI是美國NI(National Instruments)公司開發(fā)的面向計(jì)算機(jī)測(cè)控領(lǐng)域的虛擬儀器軟件開發(fā)平臺(tái),可以在多種操作系統(tǒng)(WindowsXP/Vista/7、Mac OS和Unix)下運(yùn)行。LabWindows/CVI 是為C 語言程序員提供的集成開發(fā)環(huán)境(IDE),在此開發(fā)環(huán)境中可以利用C語言及其提供的庫函數(shù)來實(shí)現(xiàn)程序的設(shè)計(jì)、編輯、編譯、鏈接、調(diào)試。使用LabWindows/CVI 可以完成以下但不限于以下工作:交互式的程序開發(fā);具有功能強(qiáng)大的函數(shù)庫,用來創(chuàng)建數(shù)據(jù)采集和儀器控制的應(yīng)
2、用程序;充分利用完備的軟件工具進(jìn)行數(shù)據(jù)采集、分析和顯示;利用向?qū)ч_發(fā)IVI 儀器驅(qū)動(dòng)程序和創(chuàng)建ActiveX 服務(wù)器;為其它程序開發(fā)C 目標(biāo)模塊、動(dòng)態(tài)連接庫(DLL)、C 語言庫。圖 11 LabWindows/CVI界面LabWindows/CVI 的功能強(qiáng)大在于它提供了豐富的函數(shù)庫。利用這些庫函數(shù)除可實(shí)現(xiàn)常規(guī)的程序設(shè)計(jì)外,還可實(shí)現(xiàn)更加復(fù)雜的數(shù)據(jù)采集和儀器控制系統(tǒng)的開發(fā)。數(shù)據(jù)采集。IVI庫、GPIB/GPIB 488.2庫、NI-DAQmx庫、傳統(tǒng)的NI-DAQ庫、RS-232庫、VISA庫、VXI庫以及NI-CAN庫。數(shù)據(jù)分析。格式化IO庫、分析庫以及可選的高級(jí)分析庫。GUI庫。使用Lab
3、Windows/CVI 的用戶界面編輯器可以創(chuàng)建并編輯圖形用戶界面(GUI),而使用LabWindows/CVI 的用戶界面庫函數(shù)可以在程序中創(chuàng)建并控制GUI。此外,LabWindows/CVI為GUI 面板的設(shè)計(jì),準(zhǔn)備了許多專業(yè)控件,如:曲線圖控件、帶狀圖控件、表頭、旋鈕和指示燈等,以適應(yīng)測(cè)控系統(tǒng)軟件開發(fā)的需求,利用這些控件可以設(shè)計(jì)出專業(yè)的測(cè)控程序界面。網(wǎng)絡(luò)和進(jìn)程間通信庫。動(dòng)態(tài)數(shù)據(jù)交換(DDE)庫、TCP庫、ActiveX庫、Internet庫、DIAdem連接庫、DataSocket庫等。除此之外,用戶可以在CVI中使用ANSI C庫中的全部標(biāo)準(zhǔn)函數(shù)。正式因?yàn)橛辛藦?qiáng)大的庫支持,所以在CVI
4、中,完成繪制圖 12所示正弦函數(shù)波形的功能,只需要在main()函數(shù)中寫三行代碼:圖12 CVI程序運(yùn)行結(jié)果一旦提及NI公司,大家可能最先聯(lián)想到的是NI公司推出的LabVIEW軟件。LabWindows/CVI與LabVIEW相比,主要應(yīng)用在各種測(cè)試、控制、故障分析及信息處理軟件的開發(fā)中,其更適合中、大型復(fù)雜測(cè)試軟件的開發(fā),是工程技術(shù)人員開發(fā)建立監(jiān)測(cè)系統(tǒng)、自動(dòng)測(cè)量環(huán)境、數(shù)據(jù)采集系統(tǒng)、過程監(jiān)測(cè)系統(tǒng)的首選工具。1.1.2 LabWindows/CVI安裝要安裝CVI,只需要根據(jù)CVI安裝包里的“Release Notes.pdf”和“說明.txt”一步步完成安裝即可。安裝完CVI后,我們有必要看一
5、下,安裝程序在我們計(jì)算機(jī)的磁盤中丟下了哪些東西。表 11 LabWindows/CVI主要目錄及其內(nèi)容目錄名說明binLabWindowsCVI的庫文件extlib外部編譯器使用的CVI庫文件(只在Windows95/NT中使用)fonts字體文件include頭文件instr儀器模塊samplesCVI開發(fā)例程sdkSDK庫文件(只在Windows95/NT中使用)toolslib開發(fā)工具包和庫文件tutorial使用手冊(cè)vxdVXD實(shí)例開發(fā)模板wizardCVI開發(fā)環(huán)境中的向?qū)С绦蚱渲?,samples文件夾中的例程可以使初學(xué)者迅速掌握CVI編程開發(fā)基本步驟。bin文件夾下的cvi.chm(
6、也可以通過CVI開發(fā)環(huán)境中按F1打開)是學(xué)習(xí)CVI之路必不可少的參考文檔。1.2 尋根問底:開發(fā)環(huán)境對(duì)于一門學(xué)問的初學(xué)者來說,最希望搞懂的就是學(xué)的東西的本質(zhì)是什么。在前一小節(jié)中我們提到了,LabWindows/CVI是NI推出的一個(gè)基于C語言的集成開發(fā)環(huán)境(IDE,Integrated Development Environment)。那么什么是開發(fā)環(huán)境呢,開發(fā)環(huán)境是怎么工作的呢?集成開發(fā)環(huán)境(IDE,Integrated Development Environment )是用于提供程序開發(fā)環(huán)境的應(yīng)用程序,一般包括代碼編輯器、編譯器、調(diào)試器和圖形用戶界面工具。集成了代碼編寫功能、分析功能、編譯
7、功能、調(diào)試功能等一體化的開發(fā)軟件服務(wù)套。所有具備這一特性的軟件或者軟件套(組)都可以叫集成開發(fā)環(huán)境。如微軟的Visual Studio系列,Borland的C+ Builder系列等。但我們自從學(xué)習(xí)C語言開始就與集成開發(fā)環(huán)境建立了不解之緣。似乎在我們心中,C語言就是VC/VS、VC/VS就是C語言、VC/VS就是編譯器、編譯器就是VC/VS。雖然不可否認(rèn)的是,IDE的出現(xiàn)大大的降低了軟件開發(fā)的門檻,曾經(jīng)幫助我們快速入門,但I(xiàn)DE過于友好的界面讓人無需思考程序編譯、運(yùn)行的原理即可開始寫自己的第一個(gè)HelloWorld程序。所以,我們有必要了解IDE的工作模式,有必要了解IDE是怎么通過命令行去工
8、作的。命令行,看似簡陋,卻能讓人專心于自己的事物,并搞清楚一個(gè)程序的來龍去脈。Keil下的命令行工作方式已經(jīng)在創(chuàng)新中心的SST單片機(jī)實(shí)踐教程的“匯編語言工具鏈”一節(jié)中有了詳細(xì)的介紹,下面通過一個(gè)實(shí)例介紹最常用的VC6.0的命令行工作方式。在此之前,我們假設(shè)你至少已經(jīng)用VC寫過C語言,編譯過工程,并對(duì)Windows下的命令行至少略知一二。當(dāng)然,如果你現(xiàn)在還不懂,趕緊利用Google等一切現(xiàn)代化的工具解除自己的疑惑。例1使用命令行完成用VC對(duì)下面簡單的C語言程序的編譯。實(shí)驗(yàn)步驟(1) 將這段代碼保存為.c文件(此處保存為main.c),并講這段代碼放在VC安裝路徑下的“VC98Bin”文件夾下。啟
9、動(dòng)命令行窗口,并將地址修改為當(dāng)前地址(2) 敲入cl.exe main.c命令執(zhí)行編譯。此時(shí)可能會(huì)彈出窗口,提示缺少文件“mspdb60.dll”,編譯失敗。畢竟當(dāng)前的命令行窗口沒有標(biāo)準(zhǔn)VC的環(huán)境變量,所以編譯程序cl.exe無法從當(dāng)前的環(huán)境變量中找到mspdb60.dll。(3) 在VC安裝路徑的“CommonMSDev98Bin”目錄中找到此DLL并復(fù)制到“VC98Bin”文件夾下之后,按鍵盤方向鍵重新運(yùn)行cl.exe main.c。此時(shí)會(huì)提示找不到stdio.h文件。在VC安裝路徑的“VC98Include”目錄中找到stdio.h之后,復(fù)制到“VC98Bin”文件夾下。圖 13 命令行
10、編譯main.c-提示找不到stdio.h(4) 同理,程序會(huì)依次提示找不到文件LIBC.lib、OLDNAMES.lib、kernel32.lib。這些庫文件都可以在VC安裝目錄下的“VC98Lib”路徑中找到。(5) 再次運(yùn)行,命令行提示編譯成功。圖 14 命令行編譯main.c-編譯成功(6) 在命令行中敲入main.exe?!癏ello,world!”是否顯示出來了呢?圖 15 運(yùn)行main.exe至此,聰明的你應(yīng)該已經(jīng)知道VC的IDE是如何依賴于安裝包內(nèi)的編譯器CL.exe程序?qū)崿F(xiàn)編譯的功能了吧。本小節(jié)旨在通過對(duì)大家熟悉的VC的IDE改用命令行進(jìn)行編譯的方式引導(dǎo)大家接觸一個(gè)新的事物首
11、先應(yīng)該搞清楚其本質(zhì)的思想,養(yǎng)成搞學(xué)問時(shí)喜歡刨根問底的好習(xí)慣。除了編譯器的功能外,集成開發(fā)環(huán)境IDE應(yīng)該還帶有調(diào)試器的功能。限于篇幅,此處不再多過多探索,大家可以自行研究。若對(duì)IDE感興趣,大家還可以調(diào)用現(xiàn)有的編譯器程序、調(diào)試器程序編寫自己的IDE!1.3 C語言的魅力是不是在大家的印象里,C語言只能做那種char后面跟幾個(gè)*,故意把人繞暈之后運(yùn)行的時(shí)候還會(huì)彈出一個(gè)黑乎乎的窗口的程序?是不是在大家的印象里,C語言不能訪問網(wǎng)絡(luò)、不能播放聲音、不能顯示圖片、不能跟硬件設(shè)備打交道、不能做GUI,即便做出來GUI也丑的很或者慢的很,更不能搞多線程之類的高端一點(diǎn)的玩意兒?是不是在大家的印象里,為了使用一個(gè)
12、串口庫,我們就必須丟掉C語言然后讓C+甚至MFC閃亮登場(chǎng)?是不是在大家的印象里,C語言能做的事情,C+、Java、C#或者Python等等編程語言通通都能做到?而這些編程語言能做到的事情C語言就很難做到?如果一定要這么認(rèn)為,那就大錯(cuò)特錯(cuò)了。即便在編程語言更新?lián)Q代如此之快的今天,我們也很難找出一個(gè)智能設(shè)備或者商業(yè)軟件在開發(fā)的過程中未曾使用C語言過。借助CVI以及CVI自帶的豐富的函數(shù)庫,C語言不僅能夠做C+、C#、Java等可以做的事,有時(shí)還可以做的更快更好,甚至還可以做這些編程語言所不能做的事。我們學(xué)校(華中科技大學(xué))的論壇“白云黃鶴”的服務(wù)器端程序就是采用C語言開發(fā)的,沒有使用現(xiàn)成的Web服
13、務(wù)程序或者數(shù)據(jù)庫管理程序(當(dāng)時(shí)沒什么IIS也沒MySQL可以用),因此數(shù)據(jù)庫通過不斷對(duì)文件進(jìn)行fread或者fwrite實(shí)現(xiàn)的。第一次聽說C語言還可以用來開發(fā)服務(wù)器程序,大家肯定不敢相信。不過下面我們將以一個(gè)簡單的實(shí)例來向大家證明,C語言真的可以寫服務(wù)器端的程序,而且簡單的超乎想象。例2使用C語言完成簡單的Web服務(wù)器的功能。實(shí)驗(yàn)步驟(1) 若您的計(jì)算機(jī)尚未安裝Apache,請(qǐng)先安裝Apache服務(wù)器。若已安裝Apache,請(qǐng)確保Apache程序處于運(yùn)行狀態(tài)。(2) 在VC6.0中新建C語言工程,輸入以下代碼。(3) 編譯,并將編譯后生成的可執(zhí)行文件main.exe復(fù)制到Apache程序的cg
14、i-bin目錄下。(4) 在瀏覽器地址欄中輸入http:/localhost/cgi-bin/main.exe?HelloWorld圖 16 在瀏覽器中訪問編譯的程序并傳入HelloWorld參數(shù)是不是見識(shí)到了C語言在網(wǎng)絡(luò)開發(fā)中“初見端倪”的一面?上述例子其實(shí)是CGI(Common Gateway Interface,通用網(wǎng)關(guān)接口)的一個(gè)最簡單的例子。稍微詳細(xì)一些的例子將會(huì)在第6 章“綜合實(shí)例:遠(yuǎn)程環(huán)境參數(shù)檢測(cè)系統(tǒng)”中見到。如果你對(duì)C語言在開發(fā)CGI程序感興趣,也可以自行查找資料,編寫一個(gè)更具實(shí)際價(jià)值的網(wǎng)絡(luò)應(yīng)用程序。1.4 CVI開發(fā)環(huán)境初接觸1.4.1 三步創(chuàng)建自己的Hello,world不
15、管是學(xué)習(xí)一門新的語言,還是學(xué)習(xí)一個(gè)新的開發(fā)工具,大家的第一個(gè)程序都是Hello world。所以,下面我們一步一步來,實(shí)現(xiàn)我們的Hello,world!1. 建立/保存工程運(yùn)行LabWindows/CVI,初始狀態(tài)的CVI會(huì)自動(dòng)為我們建好一個(gè)新的工作空間Untitled.cws以及新的工程Untitled。.cws文件是CVI工作空間文件(CVI WorkSpace),而.prj(project)是CVI的工程文件。點(diǎn)擊菜單File-New-Source(*.c),新建一個(gè)C文件。圖 17 打開CVI并新建C文件2. 輸入代碼保存代碼文件在新建的C文件中輸入下列代碼,點(diǎn)擊菜單File-Save
16、 Untitled1.c(或者按Ctrl+S、或者點(diǎn)擊工具欄中的保存按鈕),將新建的C文件保存在自己想要保存的位置中。3. 編譯運(yùn)行此時(shí)若點(diǎn)擊菜單Run-Debug Project(或者點(diǎn)擊工具欄中的綠色三角形按鈕),則CVI會(huì)彈出如下所示提示。說明剛剛保存的C語言文件必須添加到一個(gè)工程中才能繼續(xù)編譯過程。此時(shí)點(diǎn)擊Yes會(huì)自動(dòng)將C文件添加到工程中,若點(diǎn)擊Cancel也可以右擊Untitled工程之后選擇Add File添加C文件到工程中。由于我們只保存了C文件,并未保存工程.prj文件,所以右擊Untitled工程之后選擇Save,將工程文件保存。此時(shí)若再點(diǎn)擊菜單Run-Debug Proje
17、ct(或者點(diǎn)擊工具欄中的綠色三角形按鈕),Hello,world成功運(yùn)行!總結(jié)起來,完成一個(gè)HelloWorld程序只需要“建立/保存工程”-“輸入代碼保存代碼文件”-“編譯運(yùn)行”簡單的三步。大家若感興趣,也可以將以前在VC中寫的C語言程序代碼復(fù)制到CVI中,看看在CVI中是否也能正確的運(yùn)行。其實(shí),CVI是支持ANSI C(American National Standards Institute,美國國家標(biāo)準(zhǔn)協(xié)會(huì))的,只要是ANSI C的代碼,在CVI中一樣可以運(yùn)行。1.4.2 閱讀官方的samples學(xué)習(xí)或提升一門編程語言的水平,最快速有效的是閱讀大量優(yōu)質(zhì)的代碼。NI在CVI安裝目錄的samples下提供了大量的參考例程。大家可以將samples例程中的.cws文件拖動(dòng)到CVI中打開.cws文件,運(yùn)行并查看官方的代碼。初次接觸CVI的同學(xué)可能對(duì)CVI的“工作空間”與“工程”并不熟悉。一個(gè)工作空間中可能存在一個(gè)或多個(gè)工程。CVI每次編譯的時(shí)候一般只對(duì)“當(dāng)前”工程進(jìn)行編譯。需要注意的是當(dāng)前工程不是指的當(dāng)前打開的文件所在的工程,而是被設(shè)置為“Active P
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 江蘇省前黃中學(xué)2025屆高三下學(xué)期二模適應(yīng)性考試(二)語文試卷
- 2025保險(xiǎn)公司合同管理制度規(guī)范
- 甘肅省天水市2024~2025學(xué)年 高一下冊(cè)第三階段測(cè)試(5月月考)數(shù)學(xué)試卷附解析
- 福建省龍巖市2024-2025學(xué)年高二下冊(cè)第二次月考(3月)數(shù)學(xué)試卷附解析
- 安徽省六安市2024~2025學(xué)年 高二下冊(cè)4月月考B班數(shù)學(xué)試卷附解析
- 2025屆廣東省中考二模數(shù)學(xué)試卷
- 虛實(shí)界限-青年亞文化在數(shù)字時(shí)代的抵抗性邊界-洞察闡釋
- 上海交通大學(xué)醫(yī)學(xué)院附屬瑞金醫(yī)院招聘筆試真題2024
- 陜西延安“優(yōu)師計(jì)劃地方專項(xiàng)”師范畢業(yè)生招聘筆試真題2024
- 2025年古文字基礎(chǔ)試題
- 剖宮產(chǎn)術(shù)后腸梗阻護(hù)理課件
- 木材加工安全知識(shí)講座
- 國開電大+可編程控制器應(yīng)用實(shí)訓(xùn)+形考任務(wù)1
- 社區(qū)糖尿病病例管理中的藥物治療優(yōu)化策略
- 老年性眼病知識(shí)講座
- 肺結(jié)核的診療與護(hù)理
- 16J934-3中小學(xué)校建筑設(shè)計(jì)常用構(gòu)造做法
- 智能傳感器系統(tǒng)(第二版)(劉君華)1-5章
- 大學(xué)生應(yīng)急救護(hù)智慧樹知到課后章節(jié)答案2023年下西安歐亞學(xué)院
- 《高中生物必修3課件:細(xì)胞分裂和遺傳》
- GB 4806.7-2023食品安全國家標(biāo)準(zhǔn)食品接觸用塑料材料及制品
評(píng)論
0/150
提交評(píng)論