- 相關(guān)推薦
淺談LabWindows/CVI的應用特點(diǎn)
摘 要:LabWindows/CVI是一個(gè)完全的標準C開(kāi)發(fā)環(huán)境,用于開(kāi)發(fā)虛擬儀器應用系統。Labwindows/CVI將源代碼編輯、32位ANSI C編譯、聯(lián)結、調試以及標準ANSI C庫等集成在一個(gè)交互式開(kāi)發(fā)環(huán)境中。編程技術(shù)方面主要采用事件驅動(dòng)方式與回調函數方式,編程方法簡(jiǎn)單易學(xué)。同時(shí)Labwindows/CVI對每一個(gè)函數都提供一個(gè)函數面板,可進(jìn)行交互式編程,大大減少了源碼語(yǔ)句的鍵入量,減少了程序語(yǔ)法錯誤,提高了工程設計的效率和可靠性。
關(guān)鍵字: LabWindows/CVI;ANSI C;事件驅動(dòng);回調函數;函數面板
一、LabWindows/CVI簡(jiǎn)介
LabWindows/CVI是一個(gè)完全的標準C開(kāi)發(fā)環(huán)境,用于開(kāi)發(fā)虛擬儀器應用系統。LabWindows/CVI提供內置式函數庫用于完成數據采集、分析、和顯示任務(wù);它還提供簡(jiǎn)單的拖放式用戶(hù)界面編輯器以及自動(dòng)代碼生成工具。利用這些功能,您可以在將代碼加入到某項目之前,先對其進(jìn)行互動(dòng)式的測試?梢岳肔abWindows/CVI定義和建立用戶(hù)界面,生成或運行ActiveX組件,及開(kāi)發(fā)多線(xiàn)程應用。如果把您掌握的C語(yǔ)言編程知識與LabWindows/CVI簡(jiǎn)單易用的特性結合在一起,您將以不可思議地速度開(kāi)發(fā)出復雜的測量應用系統。
LabWindows/CVI的應用領(lǐng)域極其廣泛,涵蓋了軍工,電訊,工業(yè)生產(chǎn)和航天等各種行業(yè)。
二、Labwindows/CVI的特點(diǎn)
LabWindows/CVI是一個(gè)完全集成式的開(kāi)發(fā)環(huán)境,特別為建立以GPIB,PXI,VXI和插入式數據采集板卡為基礎的測量系統而設計。該環(huán)境將互動(dòng)性、簡(jiǎn)單易用的開(kāi)發(fā)方式與ANSI C編譯代碼所特有的強大編程功能和靈活性有機地結合在一起。LabWindows/CVI提供了許多實(shí)用的特性,使您無(wú)需犧牲C代碼的運行速度或源代碼可管理性,便能引人注目地改進(jìn)工作效率。
Labwindows/CVI將源代碼編輯、32位ANSI C編譯、聯(lián)結、調試以及標準ANSI C庫等集成在一個(gè)交互式開(kāi)發(fā)環(huán)境中。因此,用戶(hù)可以快速方便地編寫(xiě)、調試和修改應用程序,形成可執行文件在Windows和Sun Solaris操作系統中運行。
由于Labwindows/CVI的編程技術(shù)主要采用事件驅動(dòng)方式與回調函數方式,編程方法簡(jiǎn)單易學(xué),為用戶(hù)在原來(lái)C語(yǔ)言開(kāi)發(fā)的基礎上建立新一代的虛擬儀器系統提供了完善的兼容性和很大的靈活性。
由于Labwindows/CVI對每一個(gè)函數都提供一個(gè)函數面板,采用它用戶(hù)可進(jìn)行交互式編程,大大減少了源碼語(yǔ)句的鍵入量,減少了程序語(yǔ)法錯誤,提高了工程設計的效率和可靠性。
三、CVI中的事件一覽
LabWindows/CVI所寫(xiě)的應用程序是基于事件驅動(dòng)的。事件驅動(dòng)的程序通過(guò)響應用戶(hù)界面所發(fā)生的“事件”來(lái)執行代碼、調用回調函數。這些事件可以是發(fā)生在面板上的對象或者是面板自身。使用LabWindows/CVI進(jìn)行編程,可以生成事件驅動(dòng)的代碼。通過(guò)事件驅動(dòng)代碼,可以將用戶(hù)界面中的控件連接到代碼中的函數。每次對用戶(hù)界面進(jìn)行操作都會(huì )產(chǎn)生一個(gè)事件,LabWindows/CVI就會(huì )確定在何控件上發(fā)生了什么事件,如果對該控件有一個(gè)相應的回調函數,就會(huì )激活并運行該回調函數中的代碼。
CVI中主要包括了面板事件,控件事件,鼠標事件。其中面板事件主要有:
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:
鼠標事件:
EVENT_RIGHT_CLICK
EVENT_RIGHT_DOUBLE_CLICK,
EVENT_LEFT_CLICK,
EVENT_LEFT_DOUBLE_CLICK
除此之外,還可以在程序里添加擴展的鼠標事件。
可以通過(guò)EnableExtendMouseEvents函數來(lái)響應
EVENT_MOUSE_MOVE,
EVENT_LEFT_MOUSE_UP,
EVENT_RIGHT_MOUSE_UP等事件。
然后使用DisableExtendedMouseEvents函數關(guān)閉該功能
四、回調函數類(lèi)型
在CVI中完成軟件交互的主要有控件,面板,菜單。對于不同的交互方式,CVI里對應了不同的回調函數。主要表現在回調函數的參數不一樣。
控件回調函數:QuitCallback (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
面板回調函數:Test(int panel, int event, void *callbackData,
int eventData1, int eventData2)
菜單回調函數:MenuCallback(int menubar,int menuitem,void *callbackData,int panel)
五、函數面板
CVI中另一個(gè)最大的優(yōu)點(diǎn)就是為每一個(gè)函數都提供一個(gè)函數面板,用戶(hù)可以利用函數面板進(jìn)行交互式編程,從而避免了記憶很多函數和手工輸入很多源代碼。同時(shí)在函數面板中也提供了詳細的在線(xiàn)幫助,大大方便了程序的編寫(xiě),提高了編程效率。
六、結束語(yǔ)
我們通過(guò)對Labwindows/CVI的簡(jiǎn)單介紹,以及應用特點(diǎn)的介紹和講解,使大家對Labwindows/CVI區別于其它C語(yǔ)言開(kāi)發(fā)環(huán)境的特點(diǎn),以及明顯的編程優(yōu)勢有了初步的了解,從而對CVI的認識和學(xué)習提供了一個(gè)良好的開(kāi)端。
參考文獻:
[1]張鳳均等編著(zhù).Labwindows/CVI開(kāi)發(fā)入門(mén)和進(jìn)階.北京航空航天大學(xué)出版.
[2]劉君華等編著(zhù).虛擬儀器編程語(yǔ)言:LabWindows/CVI教程.電子工業(yè)出版社.
[3]張毅剛 主編.虛擬儀器軟件開(kāi)發(fā)環(huán)境Lab Windows/CVI6.0編程指南.機械工業(yè)出版社
【淺談LabWindows/CVI的應用特點(diǎn)】相關(guān)文章:
LabWindows/CVI的應用特點(diǎn)08-13
淺談當前通信工程傳輸技術(shù)特點(diǎn)及應用論文09-16
淺談新環(huán)境下計算機輔助審計的特點(diǎn)和應用10-02
淺談經(jīng)貿英語(yǔ)的特點(diǎn)及翻譯09-21
淺談網(wǎng)絡(luò )詩(shī)歌的特點(diǎn)與發(fā)展07-23
淺談MOF材料的應用06-02
淺談植物文化的應用09-27