【问题标题】:Arch Linux C++ read USB mice positioning dataArch Linux C++读取USB鼠标定位数据
【发布时间】:2014-01-27 16:14:19
【问题描述】:

我在 Raspberry 上运行 Arch Linux,需要从 C++ 应用程序获取 4 个 USB 鼠标的定位数据,就像对于每个单独的鼠标一样,我需要知道它在移动时移动了多少像素。我的系统上没有 x 服务器,除非必要,否则我宁愿保持这种状态,因为这是针对不需要 GUI 的嵌入式项目,我不希望在 x 服务器上浪费空间或开销。

我发现的最有用的东西是这个链接https://www.kernel.org/doc/Documentation/input/input.txt,但我真的不知道如何让它为我的目的工作。显然可以确定我在 Linux 开发方面没有经验,请不要对我太苛刻。

【问题讨论】:

  • 首先,既然你没有显示器,你就没有像素。其次,你必须记住,鼠标只报告它在某个方向上移动了 X 个单位,你必须使用这些相对移动来自己计算“光标”位置。
  • @JoachimPileborg 对术语感到抱歉,但我的意思是我想知道鼠标移动了多少单位,我只是使用了像素这个词,但我显然不尊重它们。我想要那个运动数据,因为这不是用户界面。

标签: c++ linux usb mouse archlinux


【解决方案1】:

你打开例如/dev/input/mouse0 用于读取(使用open),然后read 在您链接的文档中定义的结构(在文档底部),它还说明要包含哪个头文件。

我猜你会得到一个EV_REL 类型的鼠标移动事件,代码为REL_XREL_Y 用于移动方向,值是鼠标的单位数感动。将时间戳与前一个事件的时间戳进行比较,看看它移动的速度。

【讨论】:

  • 我现在已经用 event3 实现了这个,因为 mouse0 不起作用,但由于某种原因,它给出了完全相同的 X 和 Y 移动数字,而且它似乎从来没有给出负值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-29
  • 1970-01-01
  • 2011-07-08
相关资源
最近更新 更多