Files
CydandClaude Opus 4.8 2deeb374ae Verify HID feeder end-to-end; add smoke-test tool; update docs
The RioGamepad driver now installs and enumerates, so the user-mode
feeder path is verifiable. Add tools/RioJoySmokeTest, a standalone
on-cabinet utility that drives the real HidFeederJoystickSink (open the
device, submit reports via IOCTL_RIO_SUBMIT_REPORT) and reads the gamepad
back through winmm joyGetPosEx, asserting axes (min/mid/max), buttons,
and the POV hat all surface to the OS. Verified: all checks pass against
the installed driver.

Update docs to match reality (PLAN.md predated the HidFeederJoystickSink
commit): Phase 1 is now test-signed/installed/verified with the VHF
LowerFilters requirement noted; the stale "NullJoystickSink placeholder"
remainders in Phases 3 and 5 are corrected to reflect the wired,
verified feeder. driver/README.md notes the end-to-end verification.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 23:56:16 -05:00

909 B

RioJoySmokeTest

On-cabinet verification that the virtual gamepad path works end to end: it drives the real HidFeederJoystickSink (open the RioGamepad device → submit reports via IOCTL_RIO_SUBMIT_REPORT) and reads the gamepad back through winmm joyGetPosEx, the same data joy.cpl and a game would see. It checks the six axes (min/mid/max), buttons, and the POV hat.

This is not part of RioJoy.sln and not a unit test — it needs the signed driver actually installed (see driver/README.md), so it only passes on a machine where the RioGamepad device is present.

Run

dotnet run --project tools/RioJoySmokeTest -c Release

Exit codes: 0 all checks passed · 1 a check failed · 2 driver or joystick not found (driver not installed, or device not started — check Device Manager).