Add thrust interlock and move gamepad status to Flight tab#780
Add thrust interlock and move gamepad status to Flight tab#780
Conversation
|
Live demo with @ataffanel proved indented functionality! |
enyanil
left a comment
There was a problem hiding this comment.
Super nice addition! I have some comments about how it works:
- The state is "ready" when no gamepad is connected which is a bit misleading. Maybe add a state that is "not connected" or just a "-".
- When creating a custom mapping, the mapping is applied to the gamepad but the name in the gamepad info box is not updated. It however gets updated if you go into the menu and select a custom mapping.
- The red text about throttle in the state field is visible for a very short time and then switches to "ready" when selecting a mapping, even when everything is ok. This is not super distracting but maybe could be removed by changing order of reading?
We're also going to have to update some docs about the flight tab and input devices when this is merged.
Some things that I don't think comes from your updates (that can be made into separate issues):
- When creating a custom mapping and adding assist to the rb button, saving and applying the mapping, and then pressing rb while not connected to a cf causes the entire client to crash.
- When setting a mapping (for example ps_mode2) it is remembered when closing and re-opening the client, custom mappings are not remembered when they are selected.
|
Tested against #775 issue. I cannot reproduce the error, but I don't exactly what made the error appeared in the first place. Seems promising though! |
|
Looks great! One last thing that could be nice is that now the status is "-" when the gamepad is connected but no mapping is selected yet, making it a bit confusing since it looks like everything is ok otherwise but the gamepad still doesn't work. Could we add a "No input mapping selected" or similar state to help steer the user on how to proceed? |
When connecting to a Crazyflie or selecting/changing an input device or mapping, a thrust interlock is now engaged that forces thrust to zero until the physical throttle is brought to zero by the user. This prevents unexpected take-off due to a misconfigured mapping or a non-zero throttle position at connection time. The gamepad device info (device name, mapping, mux) previously shown in the status bar is now displayed in a dedicated Gamepad section in the Flight tab, alongside an interlock status indicator. Fixes #775
- Show "—" instead of "Ready" when no gamepad is connected - Update mapping name in Flight tab and input menu after saving a custom mapping in the config dialog - Restore original mapping when cancelling the config dialog - Skip thrust interlock when throttle is already at zero to avoid a brief red flash when selecting a mapping
When a gamepad is connected but no mapping is selected, the status now shows "No mapping selected" in orange instead of "Ready", which was misleading since the gamepad won't work without a mapping.
f0044f2 to
2d27142
Compare
stefanthorstenson
left a comment
There was a problem hiding this comment.
I had some minor suggestions that I think is worth fixing, should be very fast.
- Remove unnecessary blank lines between signal declarations in FlightTab - Rename gamepad_device_updated to _gamepad_device_updated for private naming convention
stefanthorstenson
left a comment
There was a problem hiding this comment.
Nice! Looks good from my point of view! Looking forward to running the client with this!
enyanil
left a comment
There was a problem hiding this comment.
Works great! If you want to be picky, the mapping name that is displayed in the gamepad box is the name of the json file for the mapping and not the name from the name field in the json which is formatted nicer but it is no big deal.
When connecting to a Crazyflie or selecting/changing an input device or mapping, a thrust interlock is now engaged that forces thrust to zero until the physical throttle is brought to zero by the user. This prevents unexpected take-off due to a misconfigured mapping or a non-zero throttle position at connection time.
The gamepad device info (device name, mapping, mux) previously shown in the status bar is now displayed in a dedicated Gamepad section in the Flight tab, alongside an interlock status indicator.
Fixes #775