當前位置:學問君>學習教育>畢業論文>

淺談LabWindows/CVI的應用特點

學問君 人氣:2.92W

摘 要:LabWindows/CVI是一個完全的標準C開發環境,用於開發虛擬儀器應用系統。Labwindows/CVI將原始碼編輯、32位ANSI C編譯、聯結、調試以及標準ANSI C庫等集成在一個交互式開發環境中。編程技術方面主要採用事件驅動方式與回調函數方式,編程方法簡單易學。同時Labwindows/CVI對每一個函數都提供一個函數面板,可進行交互式編程,大大減少了源碼語句的鍵入量,減少了程序語法錯誤,提高了工程設計的效率和可靠性。

淺談LabWindows/CVI的應用特點

關鍵字: LabWindows/CVI;ANSI C;事件驅動;回調函數;函數面板

一、LabWindows/CVI簡介

LabWindows/CVI是一個完全的標準C開發環境,用於開發虛擬儀器應用系統。LabWindows/CVI提供內置式函數庫用於完成數據採集、分析、和顯示任務;它還提供簡單的拖放式用戶介面編輯器以及自動代碼生成工具。利用這些功能,您可以在將代碼加入到某項目之前,先對其進行互動式的測試。可以利用LabWindows/CVI定義和建立用戶介面,生成或執行ActiveX組件,及開發多線程應用。如果把您掌握的C語言編程知識與LabWindows/CVI簡單易用的特性結合在一起,您將以不可思議地速度開發出複雜的測量應用系統。

LabWindows/CVI的應用領域極其廣泛,涵蓋了軍工,電訊,工業生產和航天等各種行業。

二、Labwindows/CVI的特點

LabWindows/CVI是一個完全集成式的開發環境,特別爲建立以GPIB,PXI,VXI和插入式數據採集板卡爲基礎的測量系統而設計。該環境將互動性、簡單易用的開發方式與ANSI C編譯代碼所特有的強大編程功能和靈活性有機地結合在一起。LabWindows/CVI提供了許多實用的特性,使您無需犧牲C代碼的執行速度或原始碼可管理性,便能引人注目地改進工作效率。

Labwindows/CVI將原始碼編輯、32位ANSI C編譯、聯結、調試以及標準ANSI C庫等集成在一個交互式開發環境中。因此,用戶可以快速方便地編寫、調試和修改應用程序,形成可執行檔案在Windows和Sun Solaris操作系統中執行。

由於Labwindows/CVI的編程技術主要採用事件驅動方式與回調函數方式,編程方法簡單易學,爲用戶在原來C語言開發的基礎上建立新一代的虛擬儀器系統提供了完善的相容性和很大的靈活性。

由於Labwindows/CVI對每一個函數都提供一個函數面板,採用它用戶可進行交互式編程,大大減少了源碼語句的鍵入量,減少了程序語法錯誤,提高了工程設計的效率和可靠性。

三、CVI中的事件一覽

LabWindows/CVI所寫的應用程序是基於事件驅動的。事件驅動的.程序透過響應用戶介面所發生的“事件”來執行代碼、調用回調函數。這些事件可以是發生在面板上的對象或者是面板自身。使用LabWindows/CVI進行編程,可以生成事件驅動的代碼。透過事件驅動代碼,可以將用戶介面中的控件連接到代碼中的函數。每次對用戶介面進行操作都會產生一個事件,LabWindows/CVI就會確定在何控件上發生了什麼事件,如果對該控件有一個相應的回調函數,就會激活並執行該回調函數中的代碼。

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

除此之外,還可以在程序裏添加擴展的鼠標事件。

可以透過EnableExtendMouseEvents函數來響應

EVENT_MOUSE_MOVE,

EVENT_LEFT_MOUSE_UP,

EVENT_RIGHT_MOUSE_UP等事件。

然後使用DisableExtendedMouseEvents函數關閉該功能

四、回調函數類型

在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中另一個最大的優點就是爲每一個函數都提供一個函數面板,用戶可以利用函數面板進行交互式編程,從而避免了記憶很多函數和手工輸入很多原始碼。同時在函數面板中也提供了詳細的在線幫助,大大方便了程序的編寫,提高了編程效率。

六、結束語

我們透過對Labwindows/CVI的簡單介紹,以及應用特點的介紹和講解,使大家對Labwindows/CVI區別於其它C語言開發環境的特點,以及明顯的編程優勢有了初步的瞭解,從而對CVI的認識和學習提供了一個良好的開端。

參考文獻:

[1]張鳳均等編着indows/CVI開發入門和進階.北京航空航天大學出版.

[2]劉君華等編着.虛擬儀器編程語言:LabWindows/CVI教程.電子工業出版社.

[3]張毅剛 主編.虛擬儀器軟件開發環境Lab Windows/CVI6.0編程指南.機械工業出版社

TAGS:淺談