commit
9dad168cd9
|
|
@ -1,3 +1,4 @@
|
|||
0.01: New App!
|
||||
0.02: Barometer altitude adjustment setting
|
||||
0.03: Use default Bangle formatter for booleans
|
||||
0.04: Add options for units in locale and recording GPS
|
||||
|
|
|
|||
|
|
@ -403,6 +403,8 @@ function onGPS(fix) {
|
|||
|
||||
if ( sp < 10 ) sp = sp.toFixed(1);
|
||||
else sp = Math.round(sp);
|
||||
if (isNaN(sp)) sp = '---';
|
||||
|
||||
if (parseFloat(sp) > parseFloat(max.spd) && max.n > 15 ) max.spd = parseFloat(sp);
|
||||
|
||||
// Altitude
|
||||
|
|
@ -416,6 +418,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 +473,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')
|
||||
|
|
@ -499,14 +507,6 @@ function onPressure(dat) {
|
|||
altiBaro = Number(dat.altitude.toFixed(0)) + Number(cfg.altDiff);
|
||||
}
|
||||
|
||||
Bangle.setBarometerPower(1); // needs some time...
|
||||
g.clearRect(0,screenYstart,screenW,screenH);
|
||||
onGPS(lf);
|
||||
Bangle.setGPSPower(1);
|
||||
Bangle.on('GPS', onGPS);
|
||||
Bangle.on('pressure', onPressure);
|
||||
|
||||
Bangle.setCompassPower(1);
|
||||
var CALIBDATA = require("Storage").readJSON("magnav.json",1)||null;
|
||||
if (!CALIBDATA) calibrateCompass = true;
|
||||
function Compass_tiltfixread(O,S){
|
||||
|
|
@ -544,11 +544,33 @@ function Compass_reading() {
|
|||
Compass_heading = Compass_newHeading(d,Compass_heading);
|
||||
hdngCompass = Compass_heading.toFixed(0);
|
||||
}
|
||||
if (!calibrateCompass) setInterval(Compass_reading,200);
|
||||
|
||||
setButtons();
|
||||
if (emulator) setInterval(updateClock, 2000);
|
||||
else setInterval(updateClock, 10000);
|
||||
function start() {
|
||||
Bangle.setBarometerPower(1); // needs some time...
|
||||
g.clearRect(0,screenYstart,screenW,screenH);
|
||||
onGPS(lf);
|
||||
Bangle.setGPSPower(1);
|
||||
Bangle.on('GPS', onGPS);
|
||||
Bangle.on('pressure', onPressure);
|
||||
|
||||
Bangle.setCompassPower(1);
|
||||
if (!calibrateCompass) setInterval(Compass_reading,200);
|
||||
|
||||
setButtons();
|
||||
if (emulator) setInterval(updateClock, 2000);
|
||||
else setInterval(updateClock, 10000);
|
||||
|
||||
Bangle.drawWidgets();
|
||||
}
|
||||
|
||||
Bangle.loadWidgets();
|
||||
Bangle.drawWidgets();
|
||||
if (cfg.record && WIDGETS["recorder"]) {
|
||||
WIDGETS["recorder"]
|
||||
.setRecording(true)
|
||||
.then(start);
|
||||
|
||||
if (cfg.recordStopOnExit)
|
||||
E.on('kill', () => WIDGETS["recorder"].setRecording(false));
|
||||
} else {
|
||||
start();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
"id": "bikespeedo",
|
||||
"name": "Bike Speedometer (beta)",
|
||||
"shortName": "Bike Speedometer",
|
||||
"version": "0.03",
|
||||
"version": "0.04",
|
||||
"description": "Shows GPS speed, GPS heading, Compass heading, GPS altitude and Barometer altitude from internal sources",
|
||||
"icon": "app.png",
|
||||
"screenshots": [{"url":"Screenshot.png"}],
|
||||
|
|
|
|||
|
|
@ -11,9 +11,34 @@
|
|||
'< 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();
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
if (global.WIDGETS && WIDGETS["recorder"]) {
|
||||
appMenu[/*LANG*/"Record rides"] = {
|
||||
value : !!settings.record,
|
||||
onchange : v => {
|
||||
settings.record = v;
|
||||
writeSettings();
|
||||
}
|
||||
};
|
||||
appMenu[/*LANG*/"Stop record on exit"] = {
|
||||
value : !!settings.recordStopOnExit,
|
||||
onchange : v => {
|
||||
settings.recordStopOnExit = v;
|
||||
writeSettings();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
const altdiffMenu = {
|
||||
'': { 'title': 'Altitude adjustment' },
|
||||
'< Back': function() { E.showMenu(appMenu); },
|
||||
|
|
|
|||
Loading…
Reference in New Issue