mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-07-26 14:58:12 +00:00
feat(ui): trail Units setting — km/h, mph, min/km, min/mi
Second row in the Config view: UP/DOWN moves focus between Min dist and Units, LEFT/RIGHT cycles the focused row's value. Units propagates to the Summary view, which now shows either "Avg: N km/h" / "N mph" or "Pace: M:SS /km" / "/mi" depending on the choice. Pace renders as "--:-- /unit" when distance or elapsed time is zero (avoids divide-by-zero glitches with one-point trails). mph conversion uses the 0.621371 ratio with rounding; pace works in floating point off raw metres and seconds for accuracy at low speeds. NodePrefs gains trail_units_idx as another reserved-ish byte; old saves load with 0 = km/h, no schema bump needed since the rd() lambda already defaults missing fields to zero. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -103,6 +103,7 @@ struct NodePrefs { // persisted to file
|
||||
// not a persisted preference.
|
||||
uint8_t trail_interval_idx; // reserved — sampling cadence is now fixed at TrailStore::SAMPLING_SECS
|
||||
uint8_t trail_min_delta_idx; // indexes TrailStore::minDeltaMeters (5/10/25/100 m)
|
||||
uint8_t trail_units_idx; // indexes TrailStore::unitLabel (km/h, mph, min/km, min/mi)
|
||||
|
||||
// Tail sentinel written at the end of /new_prefs. Bump the low byte when
|
||||
// adding/removing/reordering fields in DataStore::savePrefs/loadPrefsInt so
|
||||
|
||||
Reference in New Issue
Block a user