計算機網(wǎng)絡(luò)
計算機網(wǎng)絡(luò)
一、LabWindows/CVI簡介
LabWindows/CVI是一個完全的標(biāo)準(zhǔn)C開發(fā)環(huán)境,用于開發(fā)虛擬儀器應(yīng)用系統(tǒng)。LabWindows/CVI提供內(nèi)置式函數(shù)庫用于完成數(shù)據(jù)采集、分析、和顯示任務(wù);它還提供簡單的拖放式用戶界面編輯器以及自動代碼生成工具。利用這些功能,您可以在將代碼加入到某項目之前,先對其進(jìn)行互動式的測試。可以利用LabWindows/CVI定義和建立用戶界面,生成或運行ActiveX組件,及開發(fā)多線程應(yīng)用。如果把您掌握的C語言編程知識與LabWindows/CVI簡單易用的特性結(jié)合在一起,您將以不可思議地速度開發(fā)出復(fù)雜的測量應(yīng)用系統(tǒng)。
LabWindows/CVI的應(yīng)用領(lǐng)域極其廣泛,涵蓋了軍工,電訊,工業(yè)生產(chǎn)和航天等各種行業(yè)。
二、Labwindows/CVI的特點
LabWindows/CVI是一個完全集成式的開發(fā)環(huán)境,特別為建立以GPIB,PXI,VXI和插入式數(shù)據(jù)采集板卡為基礎(chǔ)的測量系統(tǒng)而設(shè)計。該環(huán)境將互動性、簡單易用的開發(fā)方式與ANSI C編譯代碼所特有的強大編程功能和靈活性有機地結(jié)合在一起。LabWindows/CVI提供了許多實用的特性,使您無需犧牲C代碼的運行速度或源代碼可管理性,便能引人注目地改進(jìn)工作效率。
Labwindows/CVI將源代碼編輯、32位ANSI C編譯、聯(lián)結(jié)、調(diào)試以及標(biāo)準(zhǔn)ANSI C庫等集成在一個交互式開發(fā)環(huán)境中。因此,用戶可以快速方便地編寫、調(diào)試和修改應(yīng)用程序,形成可執(zhí)行文件在Windows和Sun Solaris操作系統(tǒng)中運行。
由于Labwindows/CVI的編程技術(shù)主要采用事件驅(qū)動方式與回調(diào)函數(shù)方式,編程方法簡單易學(xué),為用戶在原來C語言開發(fā)的基礎(chǔ)上建立新一代的虛擬儀器系統(tǒng)提供了完善的兼容性和很大的靈活性。
由于Labwindows/CVI對每一個函數(shù)都提供一個函數(shù)面板,采用它用戶可進(jìn)行交互式編程,大大減少了源碼語句的鍵入量,減少了程序語法錯誤,提高了工程設(shè)計的效率和可靠性。
三、CVI中的事件一覽
LabWindows/CVI所寫的應(yīng)用程序是基于事件驅(qū)動的。事件驅(qū)動的程序通過響應(yīng)用戶界面所發(fā)生的“事件”來執(zhí)行代碼、調(diào)用回調(diào)函數(shù)。這些事件可以是發(fā)生在面板上的對象或者是面板自身。使用LabWindows/CVI進(jìn)行編程,可以生成事件驅(qū)動的代碼。通過事件驅(qū)動代碼,可以將用戶界面中的控件連接到代碼中的函數(shù)。每次對用戶界面進(jìn)行操作都會產(chǎn)生一個事件,LabWindows/CVI就會確定在何控件上發(fā)生了什么事件,如果對該控件有一個相應(yīng)的回調(diào)函數(shù),就會激活并運行該回調(diào)函數(shù)中的代碼。
CVI中主要包括了面板事件,控件事件,鼠標(biāo)事件。其中面板事件主要有:
EVENT_LEFT_CLICK:
EVENT_LEFT_DOUBLE_CLICK:
EVENT_RIGHT_CLICK:
EVENT_RIGHT_DOUBLE_CLICK:
EVENT_KEYPRESS:
EVENT_GOT_FOCUS:
EVENT_LOST_FOCUS:
EVENT_DISCARD:
EVENT_CLOSE:
EVENT_PANEL_SIZE:
EVENT_PANEL_MOVE:
控件事件:
EVENT_COMMIT:
EVENT_LEFT_CLICK:
EVENT_LEFT_DOUBLE_CLICK:
EVENT_RIGHT_CLICK:
EVENT_RIGHT_DOUBLE_CLICK:
EVENT_KEYPRESS:
EVENT_GOT_FOCUS:
EVENT_LOST_FOCUS:
EVENT_DISCARD:
鼠標(biāo)事件:
EVENT_RIGHT_CLICK
EVENT_RIGHT_DOUBLE_CLICK,
EVENT_LEFT_CLICK,
EVENT_LEFT_DOUBLE_CLICK
除此之外,還可以在程序里添加擴展的鼠標(biāo)事件。
可以通過EnableExtendMouseEvents函數(shù)來響應(yīng)
EVENT_MOUSE_MOVE,
EVENT_LEFT_MOUSE_UP,
EVENT_RIGHT_MOUSE_UP等事件。
然后使用DisableExtendedMouseEvents函數(shù)關(guān)閉該功能
四、回調(diào)函數(shù)類型
在CVI中完成軟件交互的主要有控件,面板,菜單。對于不同的交互方式,CVI里對應(yīng)了不同的回調(diào)函數(shù)。主要表現(xiàn)在回調(diào)函數(shù)的參數(shù)不一樣。
控件回調(diào)函數(shù):QuitCallback (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
面板回調(diào)函數(shù):Test(int panel, int event, void *callbackData,
int eventData1, int eventData2)
菜單回調(diào)函數(shù):MenuCallback(int menubar,int menuitem,void *callbackData,int panel)
五、函數(shù)面板
CVI中另一個最大的優(yōu)點就是為每一個函數(shù)都提供一個函數(shù)面板,用戶可以利用函數(shù)面板進(jìn)行交互式編程,從而避免了記憶很多函數(shù)和手工輸入很多源代碼。同時在函數(shù)面板中也提供了詳細(xì)的在線幫助,大大方便了程序的編寫,提高了編程效率。
六、結(jié)束語
我們通過對Labwindows/CVI的簡單介紹,以及應(yīng)用特點的介紹和講解,使大家對Labwindows/CVI區(qū)別于其它C語言開發(fā)環(huán)境的特點,以及明顯的編程優(yōu)勢有了初步的了解,從而對CVI的認(rèn)識和學(xué)習(xí)提供了一個良好的開端。