当前位置: 代码迷 >> 驱动开发 >> 怎么开发友基,汉王,WACOM数位笔的压感程序
  详细解决方案

怎么开发友基,汉王,WACOM数位笔的压感程序

热度:268   发布时间:2016-04-28 11:20:44.0
如何开发友基,汉王,WACOM数位笔的压感程序
让画图的线条画起来是这样有粗细分明的。


关键是他们没有放出原代码,我只好找一些懂的人问问了,当然希望也不大。有谁写过这类电磁感应的程序吗?



语言是C/C++ 。。开发环境我是BCB
其他的我看不懂。请注释,谢谢



------解决方案--------------------
楼主的问题是如何开发压感HID设备的应用程序,对吧?

1. 参考Windows Touch Program Guid:
http://msdn.microsoft.com/en-us/library/dd317323(VS.85).aspx
1.1 参考Windows Touch Input:
http://msdn.microsoft.com/en-us/library/dd371589(v=VS.85).aspx
1.2 处理WM_TOUCH信息来获取压力值,重点参考函数GetTouchInputInfo Function (http://msdn.microsoft.com/en-us/library/dd371582(VS.85).aspx)和结构TOUCHINPUT Structure (http://msdn.microsoft.com/en-us/library/dd317334(VS.85).aspx)
1.3 MSDN里面没有介绍Pressure参数的处理,需要你自己去探索,重点参考TOUCHINPUT里的 ULONG_PTR dwExtraInfo;(压力值可能在这个指针的数据里面)
DWORD cxContact; (触点接触面的宽度)
DWORD cyContact; (触点接触面的高度)
1.4 可以用Visual Studio带的信息Hook工具,Hook一下Hanvo Tablet的示例工具获得的WM_TOUCH信息,有助于知道有效的压力值在什么地方。

2.从驱动程序和设备的角度考虑,
2.1 设备的压力值应该是通过HID Usage: Pressure (page 0x0D, usage 0x30)传给系统的 (http://msdn.microsoft.com/en-us/library/ff553737(v=VS.85).aspx)
2.2 如果你了解一些驱动知识,可以用WDK里的HClient获取设备的HID Device Descriptor,确认设备是否支持page 0x0D, usage 0x30.甚至可以直接分析HID Report来获取压力值。
  相关解决方案