python - 读取任何 PC 兼容的赛车方向盘输入

标签 python c++ c windows

我是一名电气工程师学生,目前正在做一个期末项目,旨在建立一个驾驶模拟平台来测试我的睡意检测设备。我目前正在寻找可以检索方向盘输入数据(例如方向盘角度)的方法,因为我需要这些数据来有效地操作我的设备。我尝试在互联网上查找,但只找到了这些文档:

https://learn.microsoft.com/en-us/uwp/api/windows.gaming.input.racingwheelreading https://learn.microsoft.com/en-us/windows/uwp/gaming/racing-wheel-and-force-feedback

Windows 似乎仅支持与 Xbox One 或 Xbox 360 方向盘兼容的设备。由于预算有限,我们只能找到一些兼容 PS4/PS3 和 PC 的廉价方向盘。有没有其他方法可以从任何 PC 兼容的赛车方向盘读取输入数据,例如转向角度?顺便说一下,我使用的是windows操作系统。

我非常感谢任何帮助。

最佳答案

如果您的方向盘被标记为与 PC 兼容,那么它们很可能在 Windows 中显示为操纵杆。可以使用多媒体操纵杆 API 或 DirectInput 读取这些设备。

多媒体操纵杆 API 文档位于:https://msdn.microsoft.com/en-us/library/windows/desktop/dd757116(v=vs.85).aspx 。您可以通过调用一系列 C 函数来使用此 API,例如 joyGetPosEx(),这些函数都在 Windows.h 中提供。

DirectInput 设置起来比较复杂,并且使用 COM 工作。 DirectInput 文档位于:https://msdn.microsoft.com/en-us/library/windows/desktop/ee416842(v=vs.85).aspx

XInput 应该是输入设备的下一代 API,但它仅支持具有 Xbox 360 Controller 布局(操纵杆、按钮等)的输入设备。

您发现的文档适用于 Microsoft 较新的“通用 Windows 平台”,该平台在 Microsoft 商店中使用。 UWP 应用无法使用 DirectInput,并且可能也无法使用旧的操纵杆 API。

关于python - 读取任何 PC 兼容的赛车方向盘输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49142439/

相关文章:

python - 如何使用 python 将多个列表组合成多个字典?

c++ - 为什么 C++ 映射中没有 "exists"函数?

c - 程序接收信号SIGSEGV,Segmentation fault错误

python - 如何在mongoDB中存储聚合管道?

python - 如何从 Python 中的 pandas 数据框中获取 networkx 图的分支作为列表?

c++ - 关于静态变量的访问问题

java - C/C++ 是否有 Findbugs 和/或 PMD 等价物?

c++ - 在 Mac OSX 上从 Python 脚本调用 C++ 函数

Python for循环查询

c++ - 你如何打印出文件的二进制表示?