10 likes | 138 Views
電腦與通訊工程系. 前言. 輸出入函式. 尋找人工輸入裝置. 使用 VB 設計 USB 週邊裝置圖形監控軟體 文 / 林正敏、江孟儒 摘自: e 科技雜誌三十四期,第 33-35 頁( 2003 ). 摘要 USB 裝置愈來愈普及,也促使設計 USB 產品的重要性,本文即說明如何使用 VB 來呼叫 USB 標準人工輸入裝置的介面函式來設計圖形監控軟體。首先,說明如何找到人工輸入裝置,再來設計專屬的輸出入函式,最後使用二進位燈號顯示控制程式當成應用的範例。.
E N D
電腦與通訊工程系 前言 輸出入函式 尋找人工輸入裝置 使用VB設計USB週邊裝置圖形監控軟體 文/林正敏、江孟儒 摘自:e科技雜誌三十四期,第33-35頁(2003) 摘要 USB裝置愈來愈普及,也促使設計USB產品的重要性,本文即說明如何使用VB來呼叫USB標準人工輸入裝置的介面函式來設計圖形監控軟體。首先,說明如何找到人工輸入裝置,再來設計專屬的輸出入函式,最後使用二進位燈號顯示控制程式當成應用的範例。 人類因科技的發達生活的富裕,對於日常生活的便利性也有更高的要求,各項監控設備及軟體也孕育而生。以前的電腦監控設備方式,較常見是裝置ISA或PCI控制板以IC8255進行擴充控制,若不以插控制板方式控制,則有以Parallel Port (LPT Port)或Serious Port (COM Port)進行資訊傳輸,但也因傳輸距離及速度而有所限制,且若於初始啟動電腦時傳輸設備未插上,資訊控制亦不能進行;然而於現今視窗作業系統中最常見的標準輸入裝置是人工輸入裝置,而USB則是目前最流行的介面之一。 USB介面不但接線簡單,且支援即插即用(Plug and Play),並可進行熱插拔(Hot Attach and Detach),在傳輸速度上最高更可達480Mbps,因此用於即時(Real Time)監控是非常恰當的介面,本文也因USB有這許多優點,且配合VB圖形化寫作的特性而完成。 Dim Capabilities As HIDP_CAPS Private Sub GetDeviceCapabilities() Dim PreparsedData As Long '傳回一個具有關於該裝置功能的緩衝區的指標 HidD_GetPreparsedData HidDevice, PreparsedData '取得裝置的能力 HidP_GetCaps PreparsedData, Capabilities End Sub Private Sub ReadDevice() Dim NumberOfBytesRead As Long Dim ReadBuffer() As Byte '根據設備輸入文件的大小調整接收緩衝區大小 ReDim ReadBuffer(Capabilities.InputReportByteLength - 1) '讀取裝置的內容 ReadFile HidDevice, ReadBuffer(0), Capabilities.InputReportByteLength, _ NumberOfBytesRead, 0 End Sub Private Sub WriteDevice() Dim NumberOfBytesWritten As Long '輸出資料到裝置 WriteFile HidDevice, OutputData(0), CLng(Capabilities.OutputReportByteLength), _ NumberOfBytesWritten, 0 End Sub 要和USB I/O裝置建立溝通模式,首先必須先找到此一裝置,由於我們使用人工輸入裝置來設計I/O控制器,因此必須先呼叫HidD_GetHidGuid來取得人工輸入裝置的全域唯一描述符(GUID),此描述符是微軟用來標示元件物件模型物件和介面,對每個物件或介面而言,其代表的描述符是唯一的,用來代表物件的代碼,我們也可以使用登錄編輯程式(regedit.exe)來取得,其GUID為【4d1e55b2-f16f-11cf-88cb001111000030】。取得GUID之程式如下: Dim HidGuid As GUID '儲存HID全域唯一描述符(GUID) HidD_GetHidGuid HidGuid '尋找HID的全域唯一描述符(GUID) 結論 本文說明如何利用VB來設計USB I/O控制程式,此一程式的特色為不需要額外自訂的動態連結函式 ,而採用標準的動態連結函式HID.DLL,而且設計輸出入專用函式,可以簡化設計USB I/O裝置的程式。