解释USB操纵杆轴

时间:2013-10-22 19:40:31

标签: c linux usb joystick gamepad

关于这方面已经有一些问题,但没有人回答我的问题。

我有一个Saitek P990双模拟游戏手柄,并希望将操纵杆移动读取为可用于控制电机等的可理解数据。

我该怎么做呢?我想写一些c代码来完成这项工作,如果可能的话,但我对C很新,所以需要非常明确的解释:)

1 个答案:

答案 0 :(得分:3)

如果您想阅读原始操纵杆,您有两个基本选项:

  • 使用操纵杆事件阅读旧/dev/js0(或/dev/input/js0)设备。
  • 找到相关的新/dev/input/event*设备并阅读通用输入事件。

您可以在互联网上轻松找到两者的示例。 或者您可以使用来源(joydev.cinput.c)!

为了快速测试,许多发行版都有input-utils包。它的源代码将是最具启发性的。

QUICK LINK:

例如参见教程here。基础是:

  1. 使用/dev/input/event*打开设备open()
  2. 使用ioctl()系统调用和EVIO*代码来识别设备。
  3. read()的事件读入input_event结构。
  4. 识别有趣的事件并使用它们!
  5. 正如我之前所说,从控制台运行input-events util,查看输入事件将是最有用的,因为程序将接收它们。