1

我有一个希望在项目中使用的罗技无线触摸板。我有兴趣使用这两种设备来驱动显微镜载物台。理想情况下,我会将触摸板与计算机连接起来,其唯一目的是驱动舞台,而不是用作鼠标。将使用普通鼠标在窗口和我的程序的用户界面中导航。

这就是问题所在:我不确定如何重新配置​​该设备的功能。似乎我需要为触摸板编写一个新的驱动程序。然而,听起来为设备编写新的驱动程序可能是一项艰巨的任务,如果做得不好,后果会很严重。以前从未写过驱动程序,我敢肯定我会搞砸一些事情。

以下是我的具体问题:

  1. 是否需要编写新的驱动程序来重新配置鼠标以进行其他操作?

  2. 如果不是,如何进行这样的重新配置?(任何方法都可以接受)。

  3. 我可以以某种方式简单地读取从设备输出到计算机的数据以获取要处理的事件吗?

以下是一些可能有用的其他信息:我在 Windows 7 上使用 Python 编程。我只需要知道触摸板上被触摸的 (x, y) 坐标。任何帮助或建议总比没有好。如果这个问题需要改进才能正确回答,请告诉我!提前致谢!

4

1 回答 1

1

​1. 是否需要编写新的驱动程序来重新配置鼠标以进行其他操作?

否。无论其他问题如何,您仍然需要相同的驱动程序来从鼠标读取数据。

2. 如果不是,如何进行这样的重新配置?(任何方法都可以接受)。

您只需要使指针不是“核心”设备。在 Linux 下,您只需告诉 xinput 将其与 X 下的虚拟核心指针分离。

$ xinput list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=11   [slave  pointer  (2)]
⎜   ↳ Logitech USB-PS/2 Optical Mouse           id=12   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Sleep Button                              id=8    [slave  keyboard (3)]
    ↳ Acer CrystalEye webcam                    id=9    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=10   [slave  keyboard (3)]
$ xinput float 12
$ xinput list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=11   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Sleep Button                              id=8    [slave  keyboard (3)]
    ↳ Acer CrystalEye webcam                    id=9    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=10   [slave  keyboard (3)]
∼ Logitech USB-PS/2 Optical Mouse           id=12   [floating slave]

我确信在其他操作系统上也存在类似的程序。

3. 我可以以某种方式简单地读取从设备输出到计算机的数据以获取要处理的事件吗?

绝对地。这就是事件子系统(以及它在其他操作系统上的类比)的用途。

于 2012-05-26T21:46:29.957 回答