BangleApps/apps/speedalt2/settings.js

90 lines
2.4 KiB
JavaScript

(function(back) {
let settings = require('Storage').readJSON('speedalt2.json',1)||{};
//settings.buzz = settings.buzz||1;
function writeSettings() {
require('Storage').write('speedalt2.json',settings);
}
function setUnits(m,u) {
settings.spd = m;
settings.spd_unit = u;
writeSettings();
}
function setUnitsAlt(m,u) {
settings.alt = m;
settings.alt_unit = u;
writeSettings();
}
function setUnitsDist(d,u) {
settings.dist = d;
settings.dist_unit = u;
writeSettings();
}
function setColour(c) {
settings.colour = c;
writeSettings();
}
const appMenu = {
'': {'title': 'GPS Speed Alt'},
'< Back': back,
'< Load GPS Adv Sport': ()=>{load('speedalt2.app.js');},
'Units' : function() { E.showMenu(unitsMenu); },
'Colours' : function() { E.showMenu(colMenu); },
'Kalman Filter' : function() { E.showMenu(kalMenu); }/*,
'Vibrate' : {
value : settings.buzz,
format : v => v?"On":"Off",
onchange : () => { settings.buzz = !settings.buzz; writeSettings(); }
}*/
};
const unitsMenu = {
'': {'title': 'Units'},
'< Back': function() { E.showMenu(appMenu); },
'default (spd)' : function() { setUnits(0,''); },
'Kph (spd)' : function() { setUnits(1,'kph'); },
'Knots (spd)' : function() { setUnits(1.852,'kts'); },
'Mph (spd)' : function() { setUnits(1.60934,'mph'); },
'm/s (spd)' : function() { setUnits(3.6,'m/s'); },
'Km (dist)' : function() { setUnitsDist(1000,'km'); },
'Miles (dist)' : function() { setUnitsDist(1609.344,'mi'); },
'Nm (dist)' : function() { setUnitsDist(1852.001,'nm'); },
'Meters (alt)' : function() { setUnitsAlt(1,'m'); },
'Feet (alt)' : function() { setUnitsAlt(0.3048,'ft'); }
};
const colMenu = {
'': {'title': 'Colours'},
'< Back': function() { E.showMenu(appMenu); },
'Default' : function() { setColour(0); },
'Hi Contrast' : function() { setColour(1); },
'Night' : function() { setColour(2); }
};
const kalMenu = {
'': {'title': 'Kalman Filter'},
'< Back': function() { E.showMenu(appMenu); },
'Speed' : {
value : settings.spdFilt,
format : v => v?"On":"Off",
onchange : () => { settings.spdFilt = !settings.spdFilt; writeSettings(); }
},
'Altitude' : {
value : settings.altFilt,
format : v => v?"On":"Off",
onchange : () => { settings.altFilt = !settings.altFilt; writeSettings(); }
}
};
E.showMenu(appMenu);
});