實例說明
該實例的軟體運行界面如下圖所示:
其功能為監視當前鍵盤的按鍵信息,當按下鍵盤上的某個鍵時,在軟體上顯示出當前按鍵對應的字符及ASCII碼,如上圖為當在鍵盤上按下「a」鍵時的運行情況,其對應的ASCII碼為97。
編程思路
主程序採用事件結構+循環結構的框架形式,在事件結構的「鍵按下」事件分支中實現按鍵的監視處理功能。同時,在事件結構中也添加了一個「前面板關閉?」分支,實現程序的退出功能。下面分別進行說明。
「鍵按下」事件分支處理
該事件分支中,當鍵按下事件發生時,LabVIEW會返回一個I16類型的「字符」信息,其對應的是該按鍵的ASCII碼。
首先將其強制轉換為U8類型的變量,然後使用LabVIEW內置函數「強制轉換類型」將其轉換為字符串類型,得到該按鍵對應的具體字符,得到字符後,在選擇結構裡面進行分別處理。
當按下的鍵為非「q」鍵時,使用「格式化寫入字符串」函數顯示其對應的字符和ASCII碼值,其中,字符和ASCII碼對應的格式分別為「%s」和「%d」,並輸出一個「假」布爾量使程序處於非退出狀態,這種情況也是選擇結構的默認情況處理,程序實現代碼如下:
當按下的鍵為「q」鍵時,彈出一個對話框詢問用戶程序是否退出,將其返回值作為while循環是否退出的條件。如下圖所示:
當選擇「確定」時程序退出,否則程序繼續運行。實現代碼如下:
「前面板關閉?」事件分支處理
當點擊前面板右上角的關閉按鈕時,也可以實現退出程序的功能,其實現代碼如下圖所示:
總結
該例子比較簡單,涉及到的知識點包括:事件與循環結構的編程、字符與數字之間的轉換、字符串的格式化、彈出對話框的使用等。
另外,也可以在這個例子的基礎上,增加「shift」、「Ctrl」、「Alt」等其它按鍵信息的監視,實現軟體更多的功能。