From d559f3dde3a614be35c463c756e8bae43f0b1b78 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Wed, 5 Feb 2020 10:52:51 +0000 Subject: [PATCH] Try to get time from GPS if we rebooted and powered on without any proper time - fix #91 --- apps/boot/boot0.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/apps/boot/boot0.js b/apps/boot/boot0.js index dbee62d9c..fb6fa128a 100644 --- a/apps/boot/boot0.js +++ b/apps/boot/boot0.js @@ -19,6 +19,22 @@ Bangle.setLCDTimeout(s.timeout); if (!s.timeout) Bangle.setLCDPower(1); E.setTimeZone(s.timezone); delete s; +// check to see if our clock is wrong - if it is use GPS time +if ((new Date()).getFullYear()==1970) { + console.log("Searching for GPS time"); + Bangle.on('GPS',function cb(g) { + Bangle.setGPSPower(0); + Bangle.removeListener("GPS",cb); + if (!g.time || (g.time.getFullYear()<2000) || + (g.time.getFullYear()==2250)) { + console.log("GPS receiver's time not set"); + return; + } + setTime(g.time.getTime()/1000); + console.log("GPS time",g.time.toString()); + }); + Bangle.setGPSPower(1); +} // All of this is just shim for older Bangles if (!Bangle.loadWidgets) { Bangle.loadWidgets = function(){