From cf4daf58fe988461d9926bfea14e40de2d77c25d Mon Sep 17 00:00:00 2001 From: Rob Pilling Date: Sun, 7 May 2023 22:47:14 +0100 Subject: [PATCH] bikespeedo: add option for locale-units (e.g. mph) --- apps/bikespeedo/app.js | 8 +++++++- apps/bikespeedo/settings.js | 10 +++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/apps/bikespeedo/app.js b/apps/bikespeedo/app.js index a62a429e5..6374c0d6f 100644 --- a/apps/bikespeedo/app.js +++ b/apps/bikespeedo/app.js @@ -416,6 +416,12 @@ function onGPS(fix) { // Age of last fix (secs) age = Math.max(0,Math.round(getTime())-(lf.time.getTime()/1000)); + } else { + // populate spd_unit + if (cfg.spd == 0) { + m = require("locale").speed(0).match(/[0-9,\.]+(.*)/); + cfg.spd_unit = m[1]; + } } if ( cfg.modeA == 1 ) { @@ -465,7 +471,7 @@ function updateClock() { // Read settings. let cfg = require('Storage').readJSON('bikespeedo.json',1)||{}; -cfg.spd = 1; // Multiplier for speed unit conversions. 0 = use the locale values for speed +cfg.spd = !cfg.localeUnits; // Multiplier for speed unit conversions. 0 = use the locale values for speed cfg.spd_unit = 'km/h'; // Displayed speed unit cfg.alt = 1; // Multiplier for altitude unit conversions. (feet:'0.3048') cfg.alt_unit = 'm'; // Displayed altitude units ('feet') diff --git a/apps/bikespeedo/settings.js b/apps/bikespeedo/settings.js index f41524263..1245fce4c 100644 --- a/apps/bikespeedo/settings.js +++ b/apps/bikespeedo/settings.js @@ -11,7 +11,15 @@ '< Back': back, '< Load Bike Speedometer': ()=>{load('bikespeedo.app.js');}, 'Barometer Altitude adjustment' : function() { E.showMenu(altdiffMenu); }, - 'Kalman Filters' : function() { E.showMenu(kalMenu); } + 'Kalman Filters' : function() { E.showMenu(kalMenu); }, + 'Speed units': { + value: !!settings.localeUnits, + format: b => b ? "Locale" : "km/h", + onchange: b => { + settings.localeUnits = b; + writeSettings(); + } + }, }; const altdiffMenu = {