eGalax電阻屏的Touch驅動


該電阻屏是四線電阻屏,參數如下:VID_0EEF&PID_0001。官方網址給出的時一個模擬鼠標的驅動,那么在Windows 8 下面用着非常不舒服。最終還是找到一個單文件的驅動,名字為usbmini.sys。

該驅動特點:觸控操作都是Touch,系統可以識別出來安裝了一個單點觸控設備。

但是校准操作麻煩,系統默認的校准會出偏差(比如我點左上角,可能誤識別為左下角),所以需要手動校准,命令為

tabcal.exe lincal novalidate XGridPts=6,276,547,819,1090,1360 YGridPts=5,156,308,460,612,763

(針對1366*768的屏幕)

目前還發現一個問題,系統待機或者休眠之后(Win8的快速關機也算休眠),啟動起來就無法使用觸屏了。初步猜測是觸屏驅動只管理的開機關機兩個電源狀態,對掛起可能沒有特殊操作,一般的解決辦法就是禁用再啟用。由於Y450存在一個觸控條,我是自己寫了個服務將其變為音量調節器,而一鍵影音那個按鍵的事件也是和SlideBar是一個事件,只不過參數不同。那樣就可以把一鍵影音變為禁用再啟用觸屏的了。在這里我得感謝聯想的SlideBarNavigator,要不是這個軟件,我也不知道上哪去捕獲SlideBar事件。

 

注意:雖然這里給出了頁面鏈接,上面有驅動地址,但是這是一個內測的驅動程序。一切風險需要自己承擔。

 

原文:

Remember, this is a "AS IS" release, and even when I can guarantee that it works you ARE ON YOUR OWN. Do not count on Samsung for help (these guys are busy making money) and do not bother EETI either (these guys are really busy doing a good job).

 

我曾經聯系過EETI和D-SUB的客服,他們表示,我使用的這個控制器不是HID-compatible,也就是只能作為一個絕對定位設備/鼠標了。

當然,我也想寫個驅動,但是自己不才,看不懂如何去寫。之前見過TimeLink的觸屏,他們的驅動就是采用UMDF+HID的wrapper來寫的。我看了微軟網上的介紹,說這個是推薦的技術,但是問題不同。首先這個設備系統不認為是HID設備,其次我不知道怎么具體寫代碼。

然后官網給的幫助文檔中有介紹,說數據包的格式什么的。而且我用DDK當中的USBView看到如下信息:這也與文檔說的相符,5ms進行一次信息獲取。

Device Descriptor:
bcdUSB:             0x0110
bDeviceClass:         0x00
bDeviceSubClass:      0x00
bDeviceProtocol:      0x00
bMaxPacketSize0:      0x08 (8)
idVendor:           0x0EEF
idProduct:          0x0001
bcdDevice:          0x0100
iManufacturer:        0x01
iProduct:             0x02
iSerialNumber:        0x00
bNumConfigurations:   0x01

ConnectionStatus: DeviceConnected
Current Config Value: 0x01
Device Bus Speed:     Low
Device Address:       0x03
Open Pipes:              1

Endpoint Descriptor:
bEndpointAddress:     0x81  IN
Transfer Type:   Interrupt
wMaxPacketSize:     0x0008 (8)
bInterval:            0x05

Configuration Descriptor:
wTotalLength:       0x0019
bNumInterfaces:       0x01
bConfigurationValue:  0x01
iConfiguration:       0x04
bmAttributes:         0xA0 (Bus Powered Remote Wakeup)
MaxPower:             0x32 (100 Ma)

Interface Descriptor:
bInterfaceNumber:     0x00
bAlternateSetting:    0x00
bNumEndpoints:        0x01
bInterfaceClass:      0xFF
bInterfaceSubClass:   0xFF
bInterfaceProtocol:   0xFF
iInterface:           0x00

Endpoint Descriptor:
bEndpointAddress:     0x81  IN
Transfer Type:   Interrupt
wMaxPacketSize:     0x0008 (8)
bInterval:            0x05

 

參考:http://ultramobilepc-tips.blogspot.com/2009/08/egalax-touch-screens-are-not-always-usb.html

驅動:http://ultramobilepc-tips.blogspot.com/2007/04/finally-hid-support-for-all-q1s-with.html

校准:http://www.cnbeta.com/articles/218376.htm

 

2013-4-17——今天淘寶上看到有人在賣Win8的電阻屏的轉換器。要比普通20,30塊的大一些,不過也是針對電阻屏,僅單點觸控。價格高出不少,我沒買過,不過感覺應該和我現在用的功能差不多吧……


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM