Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
自定义操纵杆行为Linux-添加Mod键_Linux_Linux Device Driver_Joystick - Fatal编程技术网

自定义操纵杆行为Linux-添加Mod键

自定义操纵杆行为Linux-添加Mod键,linux,linux-device-driver,joystick,Linux,Linux Device Driver,Joystick,我对这类东西没有太多经验,所以我想得到一些关于我应该研究什么的反馈 情况是这样的:我有一个操纵杆(StruthMaster T-Flight Hotas X),它有大约12个按钮。我想做的是能够持有其中一个按钮,并将其用作mod键,这样我就可以将我拥有的按钮数量增加一倍(实际上我有22个按钮) 现在最好的办法是什么?我目前正在运行Ubuntu 13.10。我相信这个装置是由usbhid司机捡到的。现在,我是否应该尝试编写一个自定义驱动程序来产生这种行为,或者是否有一种更好/更简单的方法来实现这一

我对这类东西没有太多经验,所以我想得到一些关于我应该研究什么的反馈

情况是这样的:我有一个操纵杆(StruthMaster T-Flight Hotas X),它有大约12个按钮。我想做的是能够持有其中一个按钮,并将其用作mod键,这样我就可以将我拥有的按钮数量增加一倍(实际上我有22个按钮)

现在最好的办法是什么?我目前正在运行Ubuntu 13.10。我相信这个装置是由usbhid司机捡到的。现在,我是否应该尝试编写一个自定义驱动程序来产生这种行为,或者是否有一种更好/更简单的方法来实现这一点——即拦截事件并动态修改它们——或者其他我甚至不知道的方法是可能的

无论如何,我希望我是清楚的。只是想找出最好的办法


提前感谢。

我将尝试使用现有的Linux操纵杆API

然后是用户空间,您可以获取所有操纵杆事件,并根据需要进行处理。具体而言,您可以获取按钮按下事件并使用如下逻辑:

void handle_button_y_press()
{
    if (button_X_pressed)
    {
        do_y_function_a();
    }
    else
    {
        do_y_function_b();
    }
}

嗨,克里斯-谢谢你的快速回复。这会拦截原始事件并覆盖其默认行为,还是与原始输入事件并行运行?我问的原因是我想在其他程序使用操纵杆之前修改行为。再次感谢。这是用户空间代码,但是你可以把它放在一个库中,让你的其他程序通过这个库连接操纵杆。否则,您将不得不修改操纵杆api本身,我不能说这是我的建议。好的,我明白了。在我遇到这个项目的同时,它似乎可以解决我的问题,如果不能,它应该可以帮助我找到我需要做的事情: