From c3a45287d07dd4994aad6eb7c9aed0324a286065 Mon Sep 17 00:00:00 2001 From: nujw Date: Fri, 12 Feb 2021 13:53:08 +1300 Subject: [PATCH] Use new GPS settings module --- apps/speedalt/app.js | 72 +++++++++++++++++--------------------------- 1 file changed, 28 insertions(+), 44 deletions(-) diff --git a/apps/speedalt/app.js b/apps/speedalt/app.js index f87290155..1b2c6cd65 100644 --- a/apps/speedalt/app.js +++ b/apps/speedalt/app.js @@ -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,22 +270,18 @@ 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(); - var s = require('Storage').readJSON('setting.json',1)||{}; - var t = s.timeout||10; - Bangle.setLCDTimeout(t); - } - else { - Bangle.setLCDTimeout(0); - Bangle.setLCDPower(1); - LED1.set(); - } + pwrSav=!pwrSav; + if ( pwrSav ) { + LED1.reset(); + var s = require('Storage').readJSON('setting.json',1)||{}; + var t = s.timeout||10; + Bangle.setLCDTimeout(t); + } + else { + Bangle.setLCDTimeout(0); + 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);