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