bluerobotics / bluerobotics/cockpit
Joystick: allow axis protocol configuration
- Dominant language
- TypeScript
- Stars
- 198
- Forks
- 63
- Avg merge
- 2d 7h
- Merged PRs (30d)
- 57
Description
Currently we forcibly send MAVLink `MANUAL_CONTROL` messages at a fixed rate, even though many vehicles don't support them, and some users may wish to change the frequency. It would be useful to allow turning that off and/or using some other protocol options for the motion control axes.
The most intuitive approach I can think of is providing a dropdown for the "axes protocol" which (for now) allows selecting between None, MAVLink `MANUAL_CONTROL`, and MAVLink `RC_CHANNELS_OVERRIDE`, together with a frequency selector/slider for the message rate (when the protocol is not None). That also leaves the UI open for additional protocols later, including non-MAVLink ones if that becomes relevant.
There is a bit of complexity involved though, because if the axes protocol is set to anything other than `MANUAL_CONTROL` then the corresponding button functions shouldn't be available to the user (since the messages won't be being sent). Perhaps we can allow them to stay selected (so they don't get unmapped), but just grey them out and/or strikethrough them to make it obvious they won't actually work.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by locating the joystick UI and the existing MAVLink MANUAL_CONTROL send path. Review how axis protocols, message frequency, and button mappings are represented, then verify that the requested protocol choices and disabled button behavior work without breaking existing mappings.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- api, frontend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100