Correlating traditional Windows joystick axes with HID

Posted by Wade Williams on Stack Overflow See other posts from Stack Overflow or by Wade Williams
Published on 2010-03-28T23:26:24Z Indexed on 2010/03/28 23:33 UTC
Read the original article Hit count: 467

Filed under:
|
|
|

I'm a bit confused on the description of joystick axes and I'm hoping that someone has a link or document which could help clear my confusion.

I'm not a Windows guy, so trying to port some traditional Windows gameport code has me a bit confused.

We all know about the common first three axes:
X
Y
Z

My understanding was that in the gameport-style interface the three other axes are:
R
U
V

However, looking in my IOHIDUsageTables (OS X), I see:

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 */

This has me a bit confused due to the three R axis (though that does not appear to be uncommon) and the lack of a U axis.

Two questions:

1) Can anyone confirm to what axis the traditional U axis would be? I saw one document describe it as "the axis for rudder pedals" leading me to believe it would be Rz.
2) Can anyone describe in more detail the typical usages of the V and Vbr axes? I understand the descriptions are "vector" and "relative vector,' respectively, but I'm having difficult visualizing what that means in terms of a physical device.

All enlightenment and documentation pointers welcome.

© Stack Overflow or respective owner

Related posts about joystick

Related posts about usb