diff --git a/apps.json b/apps.json index 12b09f6d1..34e215230 100644 --- a/apps.json +++ b/apps.json @@ -497,7 +497,7 @@ { "id": "gpsrec", "name": "GPS Recorder", "icon": "app.png", - "version":"0.22", + "version":"0.23", "interface": "interface.html", "description": "Application that allows you to record a GPS track. Can run in background", "tags": "tool,outdoors,gps,widget", diff --git a/apps/gpsrec/ChangeLog b/apps/gpsrec/ChangeLog index 289fb38d6..8d13df000 100644 --- a/apps/gpsrec/ChangeLog +++ b/apps/gpsrec/ChangeLog @@ -24,3 +24,4 @@ 0.20: Add documentation to explain time needed for getting a time fix 0.21: Fix issue where a period of 1s recorded every 2s, 5s every 6s, and so on 0.22: Ensure Bangle.setGPSPower uses 'gpsrec' as a tag +0.23: Fix issue where tracks wouldn't record when running from OpenStMap if a period hadn't been set up first diff --git a/apps/gpsrec/widget.js b/apps/gpsrec/widget.js index 3d22373ec..6a47f04c5 100644 --- a/apps/gpsrec/widget.js +++ b/apps/gpsrec/widget.js @@ -4,7 +4,7 @@ var fixToggle = false; // toggles once for each reading var gpsTrack; // file for GPS track var gpsOn = false; - var lastFixTime; + var lastFixTime = Date.now(); // draw your widget function draw() { @@ -26,9 +26,7 @@ fixToggle = !fixToggle; WIDGETS["gpsrec"].draw(); if (hasFix) { - var period = 1000000; - if (lastFixTime!==undefined) - period = fix.time.getTime() - lastFixTime; + var period = fix.time.getTime() - lastFixTime; if (period+500 > settings.period*1000) { // round up lastFixTime = fix.time.getTime(); try { @@ -78,8 +76,7 @@ reload(); Bangle.drawWidgets(); // relayout all widgets },plotTrack:function(m) { // m=instance of openstmap module - settings = require("Storage").readJSON("gpsrec.json",1)||{}; - settings.file |= 0; + // if we're here, settings was already loaded var n = settings.file.toString(36); var f = require("Storage").open(".gpsrc"+n,"r"); var l = f.readLine(f);