我想为usb触摸屏写一个usb触摸屏文本。我读过内核扩展编程主题和I/O工具包的基本原理等,我的问题是:1。如何从触摸屏获取输入报告信息?如何将坐标信息发布到系统中?
我不知道,有人帮忙吗?
发布于 2013-12-31 02:24:14
这取决于硬件;而且,这个问题相当广泛--为了得到更具体的答案,您需要在您的问题中更加具体。我将尝试提供一个概括性的概述:
触摸屏有两个部分:
由于您还没有询问(1),我假设您的设备只是插入Mac上的显示端口,并且已经正确显示了。如果不是,您将需要查看IOFramebuffer API。
对于(2) -几乎所有的USB输入设备都是某种形式的HID设备。如果您是新的隐藏在一般情况下,您可能希望阅读和理解USB规范及相关文档,因为您将使用该信息贯穿。
OSX已经提供了对标准HID设备类的全面支持,例如键盘、鼠标、触摸屏、图形平板等等。如果您的设备声称是任何类型的HID设备,OSX应该已经检测到它并将其通用的HID驱动程序附加到它上。您应该在I/O注册表中看到一个IOUSBHIDDriver实例(例如。使用苹果的IORegistryExplorer工具,或命令行上的ioreg )。
我也希望您的设备符合HID的绝对指向设备配置文件,因此至少一次触摸应该已经正常工作。如果它是一个多点触摸设备,或者您需要其他额外的特性,您可能希望实现一个生成或转换必要的多点触摸事件的IOUSBHIDDriver子类。
如果您的设备由于某种原因还不是HID USB设备,您将需要为它编写一个自定义USB驱动程序,并将来自它的事件转换为HID事件,因为HID事件将直接传递到用户空间并在那里处理。实际上,您可以编写USB驱动程序并从用户空间生成HID事件,因此,如果您愿意的话,您可能完全可以避免编写任何内核代码。
Apple提供了一些关于HID的文档:
如果要编写自己的内核HID设备驱动程序,最好的选择可能是IOHIDFamily源代码。您可能还可以在web上找到一些开源示例。
苹果的USB邮件列表可能也值得一查,无论是存档还是你是否有疑问。达尔文内核和达尔文驱动程序列表也是相关的。
https://stackoverflow.com/questions/20850456
复制相似问题