繁体   English   中英

如何在os x 10.9中编写usb触摸屏驱动程序kext?

[英]How to write usb touchscreen driver kext in os x 10.9?

我想为usb触摸屏写一个usb触摸屏kext。 我已经阅读了内核扩展编程主题和I / O Kit基础知识等,我的问题是,1。 如何从触摸屏获取输入报告消息? 2。 如何将坐标信息发布到系统?

我不知道,有人帮忙吗?

这取决于硬件; 此外,这个问题相当广泛 - 你需要在你的问题中更加具体,以获得更具体的答案。 我将尝试提供一个广泛的概述:

触摸屏有两个部分:

  1. 输出:显示来自计算机显示屏的图像
  2. 输入:要反馈到计算机的触摸事件

由于您根本没有询问过(1),我认为您的设备只是插入Mac上的显示端口并且已经正确显示。 如果没有,您将需要查看IOFramebuffer API。

对于(2) - 几乎所有USB输入设备都是某种形式的HID设备。 如果您是HID的新手,您可能希望阅读并理解USB HID规范和相关文档,因为您将始终使用该信息。

OSX已经全面支持标准HID设备类,如键盘,鼠标,触摸板,图形输入板等。如果您的设备声称是任何类型的HID设备,OSX应该已经检测到它并将其通用HID驱动程序附加到它。 您应该在I / O Registry中看到一个IOUSBHIDDriver实例(例如,使用Apple的IORegistryExplorer工具,或者在命令行上使用ioreg )。

我还希望您的设备符合HID的绝对指针设备配置文件,因此至少单个触摸应该已经正常工作。 如果它是多点触控设备,或者您需要其他额外功能,您可能希望实现生成或转换必要多点触控事件的IOUSBHIDDriver子类。

如果您的设备由于某种原因还不是HID USB设备,则需要为其编写自定义USB驱动程序,并将来自它的事件转换为HID事件,因为HID事件直接传递到用户空间并进行处理那里。 您实际上可以编写USB驱动程序并从用户空间生成HID事件,因此您可以根据需要避免编写任何内核代码。

Apple提供了一些关于HID的文档:

如果您要编写自己的内核HID设备驱动程序,最好的选择可能是IOHIDFamily源代码 您可能还可以在Web上找到一些开源示例。

Apple的USB邮件列表也可能值得检查,无论是存档还是有问题。 darwin-kernel和darwin-drivers列表也是相关的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM