好的,所以我最近购买了一个Acer T232HL触摸屏显示器,以连接我的Macbook Pro作为辅助显示器。给你一个想法,here's my setup。
OS X不以任何方式支持此监视器,因此您可以在屏幕截图中看到我实际上通过VMware运行Windows 8,它可以完美地将USB连接代理到Windows,支持触摸事件。但显然这并不理想。
OS X的at least one第三方驱动程序看起来很有希望,但它似乎不支持这种设备的多点触控,它很昂贵,并且通常很难在很小的程度上工作是。还有mt4j但是在运行他们的示例后我能说得最好,它根本不支持这个设备。
所以这就是我的问题:如果我想为这件事写一个驱动程序,我到底在想什么?我主要是一个拥有多年Ruby,Objective-C(和一点C),Javascript等经验的Web开发人员。我从未尝试过任何类型的硬件编程,因此从表面来看,这感觉就像一个有趣的同时令人生畏挑战。
我知道在某种程度上我需要从USB读取数据。我知道这可能意味着尝试对他们用于触摸事件的任何协议进行逆向工程(这可能是完全自定义的吗?)。但是我还没有找到从哪里开始 - 这是一个内核扩展吗?在C中,我推测?非常喜欢这里涉及的活动部件的高级概述。
最终我想使用触摸屏来驱动专门的网络界面(在Chrome中运行),所以理想情况下我可以直接将触摸事件代理到Chrome,而操作系统实际上不会将鼠标光标移动到触摸位置(所以用户界面的行为就像在iPad上一样,但不管这在技术上是否可行,我都希望从刚开始工作开始。
答案 0 :(得分:2)
你想要从Apple的I/O Kit documentation开始。您可以希望触摸屏不是完全自定义的,但必须有一些不是标准USB HID的部分,或者它已经可以工作。如果有任何可用的Linux(或其他开源)驱动程序,您将拥有一个优势,即有人已经为您做了一些逆向工程。作为I / O Kit的替代方案,您可能还需要查看libusb,这可能会让您的大脑在开始时受到的伤害减少。如果你最终需要写一个kext,那可能对你不用了。
关于您的一些具体问题:
这会是内核扩展吗?
也许,也许不是。我并没有真正了解Mac OS X驱动程序的情况,但多年前我确实为OS X编写了一些完全用户空间的USB代码。也许你会很幸运。
在C中,我推测?
可能。 I / O Kit本身是用C ++的一个子集编写的,所以你也可以使用它,如果你愿意的话。
这可能是完全自定义的吗?
不幸的是,是的,这是可能的。
祝你好运!