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块的大一些,不过也是针对电阻屏,仅单点触控。价格高出不少,我没买过,不过感觉应该和我现在用的功能差不多吧……