C语言 HID操纵杆可用于现代游戏

6jygbczu  于 2023-05-06  发布在  其他
关注(0)|答案(1)|浏览(195)

我最近成功地把一个小自制操纵杆与模拟棒和四个按钮,Map到击键。它在Windows上工作得很好--移动光标,按钮适当地亮起--但后来我去看我是否可以在游戏(Fortnite)中使用它,棍子不起作用。按钮的功能,但这只是因为他们是击键。四处闲逛,我看到Xbox和PS4控制器-像Fortnite这样的游戏允许的控制器-有各种各样的花哨,我想是封闭的,独特的描述符。
有没有可能让一个自制的HID控制器与正在寻找Xbox/PS4控制器的游戏一起工作?如果是,是否有资源可以帮助开始?
我对USB和HID还很陌生,所以我可能在寻找错误的东西。

********************************我使用的微控制器支持高速,但全速提供了相同的行为。这种情况发生在我拥有的带有USB层的每个微控制器上,在任何可用的语言中,包括C,C++和Python(我敢肯定你会在Rust或其他任何东西中看到同样的情况)。这里是一个相对最小的描述符,它表现出这种行为-它是从HID规范v1.11逐字采取,除了删除帽子开关的使用,因为我没有一个(工作相同,如果我离开它,并把它绑到物理按钮):

Usage Page (Generic Desktop),
Usage (Joystick),
Collection (Application),
    Usage Page (Generic Desktop),
    Usage (Pointer),
    Collection (Physical),
        Logical Minimum (-127),
        Logical Maximum (127),
        Report Size (8),
        Report Count (2),
        Push,
        Usage (X),
        Usage (Y),
        Input (Data, Variable, Absolute),
        Logical Minimum (0),
        Logical Maximum (1),
        Report Count (2),
        Report Size (1),
        Usage Page (Buttons),
        Usage Minimum (Button 1),
        Usage Maximum (Button 2),
        Unit (None),
        Input (Data, Variable, Absolute)
    End Collection,
    Usage Minimum (Button 3),
    Usage Minimum (Button 4),
    Input (Data, Variable, Absolute),
    Pop,
    Usage (Throttle),
    Report Count (1),
    Input (Data, Variable, Absolute),
End Collection
mtb9vblg

mtb9vblg1#

我认为你的问题是,虽然你的HID游戏手柄是由Windows识别(因此显示在“设置USB游戏控制器”屏幕),大多数现代游戏在PC上正在寻找XInput设备。长话短说,我遇到了这一点,当我最近试图把一个DIY战斗棒的个人电脑使用。
虽然我不太了解XInput设备实际工作的细节(它似乎类似于HID游戏手柄,但具有不同的描述符等),但有一个名为ArduinoXInput的Arduino库可以为您完成繁重的工作。这要求您使用支持的板类型之一,并为所述板安装板芯。例如,我正在使用Arduino Pro Micro,我安装了支持Arduino Leonardos的XInput AVR core

相关问题