FRC-Utilities / QDriverStation

Cross-platform clone of the FRC Driver Station
https://frc-utilities.github.io
MIT License
186 stars 26 forks source link

Joystick mappings are wrong #40

Open RikuKawai opened 7 years ago

RikuKawai commented 7 years ago

Joystick mappings for the Logitech F310 are incorrect in QDriverStation, but are correct in jstest-gtk. Debian Stretch x86_64, Linux 4.7, QDriverStation 16.10.

They should be as follows, which matches what they are under Windows and in the robot code:

In QDriverStation, the mappings are:

This renders it impossible to correctly operate the robot without having different code for Windows and Linux.

alex-spataru commented 7 years ago

Hi!

This issue has been present for a very long time. Since we use SDL for cross-platform joystick support, we (unfortunately) depend on the mappings provided by SDL.

For the moment, I think that the smartest way is to implement a method to allow the user to re-map the joysticks (and possibly sharing the fixed mappings with the community). I will work on this issue when I have some free time in December, as I am currently about to present final exams for this quarter.

Thanks for the feedback!

SecretlyNotARobot commented 7 years ago

Can confirm, Same issue on our Logitech Attack 3's

alex-spataru commented 7 years ago

Thanks for the confirmation! I will try alternative options to SDL, such as Gainput. Ultimately, I think that the best way to standardize joystick input across operating systems will be to allow users to manually re-map joysticks on the fly...

SecretlyNotARobot commented 7 years ago

Interestingly, the output from QJoysticks is different from the output of sdl-jstest, but only on one axis

alex-spataru commented 7 years ago

@everylittlebit This can happen because QJoysticks uses SDL2 instead of SDL.

edelmanjm commented 6 years ago

Still having this issue on macOS High Sierra 10.13. I agree with @alex-spataru that the best solution seems to be to allow the user to remap the controls. Unfortunately AFAIK 360Controller doesn't contain any way to remap axes, only buttons.