Open Rikki-Tikki-Tavi-12 opened 7 months ago
Thank you for the idea, but I would like to avoid any ifdef switches like that in the code. For debugging, development and logging it's ok, but if there is a need for something like this, we better introduce something what can be used during runtime. May be this proposal can be taken into account in the long term.
I will leave this PR open for now. May be someone would like to change the standard behavior to the proposed one here. Let's see how it ends up.
I agree that this shouldn't be a codeswitch. One option would be to make settings over rs232. Another option would be to add a single button to the board. Together with the dip switch and the LED, there should be enough hid to make a functional, but unintuitive settings interface.
I'm someone who would like the shift button to function the way this PR implements it, however, I'm less picky on how setting that looks. I get the desire to store the settings, but a 'options' set of dip switches would also work fine. (How many supported joysticks would even have options?)
A dedicated configuration tool (probably just a simple python script) I think would be required if we were going to set/configure something on the arduino. As long as it's as simple as running with a couple command line arguments to configure, I don't think it's a terrible user experience. But it is more overhead for this project to maintain.
I added a codeswitch to allow using the shift button as originally intended. If the code switch is activated, a Sidewinder Precision Pro is registered as a 16 button joystick, where the lower 8 buttons are normally used, and the upper 8 buttons are used when the shift button at the joystick base is pressed. This is how the shift button on the joystick was marketed, but in no situation has this ever worked for me like that in any game, even back when it was new.
I set the switch to off by default. I think things like this shouldn't be handled in code switches, but instead it should be controlled by settings saved in the Arduino's EPROM. I could think of a number of nifty settings that I would like to give the users as options, if we had more than the DIP switch for configurability.
Previously, I had inverted the throttle axis, but I have since learned that higher values equating to less thrust is apparently the norm, so I have reversed this.