【问题标题】:Creating a touch screen driver for OS X: where to start?为 OS X 创建触摸屏驱动程序:从哪里开始?
【发布时间】:2013-07-15 18:44:54
【问题描述】:

好的,所以我最近购买了一个Acer T232HL 触摸屏显示器来连接我的 Macbook Pro 作为辅助显示器。给你一个想法,here's my setup

OS X 不以任何方式支持此显示器,因此您可以在屏幕截图中看到,我实际上是通过 VMware 运行 Windows 8,它完美地代理了与支持触摸事件的 Windows 的 USB 连接。但显然这并不理想。

有用于 OS X 的 at least one 3rd 方驱动程序看起来很有希望,但它似乎不支持该设备的多点触控,它很昂贵,而且通常在很小的程度上工作很痛苦。还有mt4j,但最好在运行他们的示例后告诉我,它根本不支持这个设备。

所以这是我的问题:如果我想为这个东西写一个驱动程序,我到底是为了什么?我主要是一名 Web 开发人员,在 Ruby、Objective-C(和一点 C)、Javascript 等方面拥有多年经验。我从未涉足任何类型的硬件编程,所以从表面上看,这感觉很有趣,但也令人生畏挑战。

我知道在某种程度上我需要从 USB 读取数据。我知道这可能意味着尝试对他们用于触摸事件的任何协议进行逆向工程(这可能是完全自定义的吗?)。但是我不知道从哪里开始——这会是内核扩展吗?在C中,我想?希望对此处涉及的移动部件进行高级概述。

最终我想使用触摸屏来驱动一个专门的 Web 界面(在 Chrome 中运行),所以理想情况下,我可以将触摸事件直接代理到 Chrome,而无需操作系统实际将鼠标光标移动到触摸位置(所以有UI 的行为就像它在 iPad 上一样),但无论这在技术上是否可行,我都希望先让一些东西正常工作。

【问题讨论】:

  • 你有没有让这个工作?看起来单指在 El Capitan (10.11.6) 上效果更好

标签: c macos driver multi-touch kernel-module


【解决方案1】:

您将希望从 Apple 的 I/O Kit documentation 开始。您可以希望触摸屏不是完全定制的,尽管必须有一些不是标准 USB HID 的部分,否则它已经可以工作了。如果有任何可用的 linux(或其他开源)驱动程序,您将拥有有人已经为您进行了一些逆向工程的优势。作为 I/O 套件的替代方案,您可能还想研究 libusb,这可能会在开始时减少您的大脑伤害。但是,如果您最终需要编写 kext,那可能对您没有帮助。

关于您的一些具体问题:

这会是内核扩展吗?

也许,也许不是。我并不真正了解 Mac OS X 驱动程序的情况,但多年前我确实为 OS X 编写了一些完全用户空间的 USB 代码。也许你会很幸运。

在 C 中,我猜?

大概吧。 I/O Kit 本身是用 C++ 的子集编写的,因此如果您愿意,也可以使用它。

这可能是完全定制的吗?

很遗憾,是的,有可能。

祝你好运!

【讨论】:

  • 一个完美的答案 - 我现在有一个开始的地方。谢谢,卡尔!
  • 你运气好吗?我不明白为什么 OSX 必须像我一直想的那样麻烦,触摸点使用与鼠标相同的协议,因此可以简单地通过 USB 连接屏幕并完成它......我也想得到适用于 Mac Pro 的 Acer T232HL....感谢您的帮助。
  • 啊哈:看看这个:就像我想的那样:amazon.com/support-win-Mac-VM-Mac-win-8-1/forum/Fx1MMROB4KNSDC1/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多