Use new GPS settings module

pull/668/head
nujw 2021-02-12 13:53:08 +13:00
parent 0784361e43
commit c3a45287d0
1 changed files with 28 additions and 44 deletions

View File

@ -1,8 +1,9 @@
/*
Speed and Altitude [speedalt]
Mike Bennett mike[at]kereru.com
1.16 : Use new GPS settings module
*/
var v = '1.15';
var v = '1.16';
var buf = Graphics.createArrayBuffer(240,160,2,{msb:true});
// Load fonts
@ -269,8 +270,6 @@ function setButtons(){
// Power saving on/off
setWatch(function(e){
var dur = e.time - e.lastTime;
if ( dur < 2 ) { // Short press.
pwrSav=!pwrSav;
if ( pwrSav ) {
LED1.reset();
@ -283,8 +282,6 @@ function setButtons(){
Bangle.setLCDPower(1);
LED1.set();
}
}
else gpsOff(); // long press, power off LP GPS
}, BTN2, {repeat:true,edge:"falling"});
// Toggle between alt or dist
@ -328,31 +325,10 @@ function savSettings() {
require("Storage").write('speedalt.json',settings);
}
// Is low power GPS service available to use?
function isLP() {
if (WIDGETS.gpsservice == undefined) return(0);
return(1);
}
function setLpMode(m) {
if (tmrLP) {clearInterval(tmrLP);tmrLP = false;} // Stop any scheduled drop to low power
if ( !lp ) return;
var s = WIDGETS.gpsservice.gps_get_settings();
if ( m !== s.power_mode || !s.gpsservice ) {
s.gpsservice = true;
s.power_mode = m;
WIDGETS.gpsservice.gps_set_settings(s);
WIDGETS.gpsservice.reload();
}
}
function gpsOff() {
if ( !lp ) return;
var s = WIDGETS.gpsservice.gps_get_settings();
s.gpsservice = false;
s.power_mode = 'SuperE';
WIDGETS.gpsservice.gps_set_settings(s);
WIDGETS.gpsservice.reload();
if ( !gpssetup ) return;
gpssetup.setPowerMode({power_mode:m})
}
// =Main Prog
@ -404,21 +380,29 @@ Bangle.on('lcdPower',function(on) {
else stopDraw();
});
var gpssetup;
try {
gpssetup = require("gpssetup")
} catch(e) {
gpssetup = false;
}
// All set up. Lets go.
g.clear();
Bangle.loadWidgets();
Bangle.drawWidgets();
onGPS(lf);
Bangle.setGPSPower(1);
var lp = isLP(); // Low power GPS widget installed?
if ( lp ) {
setLpMode('SuperE');
setInterval(()=>onGPS(WIDGETS.gpsservice.gps_get_fix()), 1000);
if ( gpssetup ) {
gpssetup.setPowerMode({power_mode:"SuperE"}).then(function() { Bangle.setGPSPower(1); });
// setInterval(()=>onGPS(WIDGETS.gpsservice.gps_get_fix()), 1000);
}
else {
Bangle.setGPSPower(1);
Bangle.on('GPS', onGPS);
}
Bangle.on('GPS', onGPS);
setButtons();
setInterval(updateClock, 30000);