【问题标题】:Interpret USB joystick axis解读 USB 摇杆轴
【发布时间】:2013-10-22 19:40:31
【问题描述】:

已经有很多关于此的问题,但没有人回答我的问题。

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

我该怎么做呢?如果可能的话,我想编写一些 C 代码来完成这项工作,但我对 C 很陌生,因此需要非常清楚的解释:)

【问题讨论】:

    标签: c linux usb joystick gamepad


    【解决方案1】:

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

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

    您可以在 Internet 上轻松找到这两个示例。 或者你可以使用源码(joydev.cinput.c)!

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

    快速链接:

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

    1. open()打开设备/dev/input/event*
    2. 使用ioctl() 系统调用和EVIO* 代码来识别设备。
    3. 将带有read() 的事件读入input_event 结构。
    4. 找出有趣的事件并加以利用!

    正如我之前所说,从控制台运行input-events util 来查看程序将接收到的输入事件是最有用的。

    【讨论】:

    • 你能给我指出其中一些例子的方向吗?我不太了解我发现的内容。
    • 好的,谢谢!我觉得这将是一项不小的任务。我会尝试根据你给我的方法来解决这个问题:)
    • @theoB610:耶!继续!如果您发现任何困难,请不要犹豫,根据需要提出尽可能多的问题。但请记住,一个具体的问题——如果可能的话,使用代码——更有可能得到具体的答案。
    猜你喜欢
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-03
    • 2017-10-27
    • 2021-04-08
    • 2016-05-01
    • 2020-12-24
    相关资源
    最近更新 更多