Hi Dave and Lars!
5th byte seems to be buttons, 6th byte the stick. It is a PC joypad.
When Wim and I were fooling around with his USB control driver, using his output program generated the following:
This way oinput.cmd would work for all 4 switch settings and the actual hid input report obtained would vary accordingly.
Code: [Select]
EC18000081030700 | 04000F4956FF6E | EE
EC18000081030700 | 04000F4A94FF6E | EE
EC18000081030700 | 04000F9250FF6E | EE
On each line, between the | characters, you see the actual hid input report data in hexadecimal.
Code: [Select]
04 | 00 | 0F | 49 | 56 | FF | 6E
B | 00 | H | X | Y | Z | S
B=button, H=Hat, X=X-axis, Y=Y-axis, Z=Z-axis, S=SliderDon't know if the hex code output definitions he mentioned above (for B, H, X, Y, Z and S) would be in the same order but thought I would bring it to your attention, in case it might help.
Also Dave, in that technical white paper you linked to on USB Usage Data, Section 4 and specifically Section 4.1 defines standard usages for Joysticks and Gamepads, while section 8 and most specifically Table 8.1 gives standardized usage data related to PC Game controllers. According to Section 3.5.3 of the paper:
Typical system software will search for application collections tagged with either a Joystick or a Game Pad Usage. When found, the Usages generated by these collections will be treated as standard system joystick (gaming device) input. Devices that use these declarations will have their output routed to separate destinations, allowing multiple-player applications.The rest of section 3 may be interesting to you and Lars as well.
Don't know if any of that helps understanding the programming, as its all "hex" to me, but if there's one thing I can do is read technical - been doing that for over 40 years and Best, Gentlemen!
Mark