You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

hidapi包中write方法执行无响应且返回-1是什么原因?

你当前的操作逻辑存在根本偏差:

  • 你打开的0x045e:0x028e是物理Xbox 360有线手柄,属于纯输入类HID设备,它的轴、按键数值完全由硬件采集后主动上报,上层软件仅能通过read方法读取上报的状态,不能通过write方法覆写硬件的输入状态。
  • hidapi的write方法是用于向支持下行通信的HID设备发送指令(比如给带震动功能的手柄发送震动参数,给自定义HID外设发送控制指令),你操作的手柄没有对应接收输入状态覆写的HID输出端点,所以write调用始终返回-1,本身就是操作不被支持的标识,和你传入的数组内容无关。

正确实现方案

你要实现向赛车游戏传输自定义方向盘输入信号的需求,应该使用虚拟输入设备方案,而非操作真实物理输入设备:

  • Windows平台可安装ViGEmBus驱动,搭配对应Python绑定,直接虚拟出Xbox手柄/方向盘设备,你可以随意设置虚拟设备的轴、按键数值,游戏会直接识别该虚拟设备的输入信号。
  • Linux平台可使用evdev库创建uinput虚拟输入设备,自定义轴量程后直接上报输入事件即可。
  • 如果你需要把真实摇杆的输入映射为方向盘输入,正确的流程是:用hidapi读取真实摇杆的输入值,做自定义转换后写入虚拟输入设备,再将游戏的输入源设置为你创建的虚拟设备即可。

补充说明:你当前使用的hidapi本身没有问题,非常适合与自定义HID外设做双向通信,但不符合模拟输入设备的需求场景。

内容的提问来源于stack exchange,提问作者JeanExtreme002

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 22:18:02