openbikesensor / openbikesensor/OpenBikeSensorFirmware
Introduce menu handling with one button
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 124
- Forks
- 29
- PR merge metrics
- No merged PRs in 30d
Description
As introduction I've to write that I'm not really sure if we should add this complexity to the device. Besides the effort to implement this, the OBS should be easy to use and additional functionality always adds complexity for the user. At least we must do it as intuitive and usable as possible for a one button device. Looking at #28, #52, #53, #60, #86, likely others and the demand to switch between different presets stored on the OBS we seem to need such a functionality. Please share your thoughts.
Idea: Long press of the button (+1s?) is used as a different action than the current short press. If a long press occurs, the OBS goes to menu mode where you can cycle through menu items (short press) and select items with a long press. There can be a hierarchy of menus, 1st item is always < back (do we internationalize this?), there must not be more than 5(?) items on one level. Likely all functions will be paused while in menu mode.
The 1 char of the item shows the action < is back, > leads to a sub menu, * triggers a direct action, ? triggers an action after a additional confirmation.
Main
< back
? delete last
* mark private
> pause recording
> select preset
> info
> system
Main - delete last
Delete last overtaking
* yes
* no
Main - pause recording
Paused
< back
Main - select preset
< back
* Bike 1/Art3mis
* Bike 1/Parzival
* Bike 2
The preset contains things like the left and right offset, user id, ...
Main - info
< back
* version: v0.3.444
* 30 cm left offset
* 30 cm right offset
* 454 reports
* 5 sats
* 12:00 2020-11-24
* 3.2 V
* ...
* filesize: ???
* ....
(all actions go back to the active mode)
Main - system
< back
? restart to server
? restart
? halt
* demo
? erase
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing issues #28, #52, #53, #60, and #86 to understand the existing demands for menus and preset switching. Then inspect the firmware's button-handling and device-mode entry points, which are not named in this issue. Done would require an agreed menu interaction design and a defined implementation scope for the one-button device.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- embedded-iot
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100