3

好的,所以我最近购买了Acer T232HL触摸屏显示器来连接我的 Macbook Pro 作为辅助显示器。为了给你一个想法,这是我的设置

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

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

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

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

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

4

1 回答 1

1

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

至于你的一些具体问题:

这会是内核扩展吗?

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

在C中,我想?

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

这有可能完全是定制的吗?

不幸的是,是的,这是可能的。

祝你好运!

于 2013-07-15T18:50:57.037 回答