Usb 将传统Windows操纵杆轴与HID关联

Usb 将传统Windows操纵杆轴与HID关联,usb,hid,joystick,Usb,Hid,Joystick,我对操纵杆轴的描述有点困惑,我希望有人能提供一个链接或文档来帮助我消除困惑 我不是Windows爱好者,所以尝试移植一些传统的Windows gameport代码让我有点困惑 我们都知道共同的前三个轴: X Y Z 我的理解是,在gameport风格的界面中,其他三个轴是: R U 五 但是,在我的IOHIDUsageTables OS X中,我看到: kHIDUsage_GD_X = 0x30, /* Dynamic Value */ kHIDUsage_GD_Y = 0x31, /* D

我对操纵杆轴的描述有点困惑,我希望有人能提供一个链接或文档来帮助我消除困惑

我不是Windows爱好者,所以尝试移植一些传统的Windows gameport代码让我有点困惑

我们都知道共同的前三个轴: X Y Z

我的理解是,在gameport风格的界面中,其他三个轴是: R U 五

但是,在我的IOHIDUsageTables OS X中,我看到:

kHIDUsage_GD_X  = 0x30, /* Dynamic Value */
kHIDUsage_GD_Y  = 0x31, /* Dynamic Value */
kHIDUsage_GD_Z  = 0x32, /* Dynamic Value */
kHIDUsage_GD_Rx = 0x33, /* Dynamic Value */
kHIDUsage_GD_Ry = 0x34, /* Dynamic Value */
kHIDUsage_GD_Rz = 0x35, /* Dynamic Value */

kHIDUsage_GD_Vx = 0x40, /* Dynamic Value */
kHIDUsage_GD_Vy = 0x41, /* Dynamic Value */
kHIDUsage_GD_Vz = 0x42, /* Dynamic Value */
kHIDUsage_GD_Vbrx   = 0x43, /* Dynamic Value */
kHIDUsage_GD_Vbry   = 0x44, /* Dynamic Value */
kHIDUsage_GD_Vbrz   = 0x45, /* Dynamic Value */
kHIDUsage_GD_Vno    = 0x46, /* Dynamic Value */
这让我有点困惑,因为有三个R轴,虽然这似乎并不少见,而且缺少U轴

两个问题:

1有人能确认传统的U轴是什么轴吗?我看到一份文件把它描述为方向舵踏板的轴,这让我相信它会是Ry。 2有人能更详细地描述V轴和Vbr轴的典型用法吗?我知道描述分别是向量和相对向量,但我很难想象这对物理设备意味着什么


欢迎所有的启蒙和文档指南。

这里有两种不同的约定,它们的命名非常相似:

每个x、y、z轴的位置、旋转和/或速度 R、 U、V轴 可能的情况是,R、U、V轴直接映射到3个HID插槽上,无论它们是哪一个。或者可能是驱动程序执行其他操作,具体取决于它是哪一块硬件

就我个人而言,我不会花太多时间担心每个轴的“含义”或它们是否可以直接映射。每个操纵杆都有不同的物理控制器,由驾驶员以任意方式映射。因此,除了X和Y之外,很难预测每个函数将使用哪些轴。即使你能猜出最初的意图,用户也可能希望覆盖默认值。因此,最好通过设置文件来实现轴映射,该文件可以根据每个设备和每个用户进行配置