How about pulling apart an old USB keyboard and use its controller? The handwheel sends out pulses, right? With the rotary selector the pulses are sent to the preselected axis. Each pulse (turn cw or ccw) is then a specific keypress.
I just received one in the mail today that I had ordered. Going to see if I can integrate it with an arduino based CNC pendant for GRBL that I found in another users github.
It would probably make sense to connect to handwheel to the server and send the commands directly to to the controller or frontend, depenting on type of command. And the server could send position messages to the handwheel too.
I created a new MPG branch of lw.comm-server and got my Mach3 MPG basically working (jog, setZero, gotoZero, pause, resume, reset)
The display on the MPG is not yet working, because I didn’t find any communication details for that.