gpsrec 0.23: Fix issue where tracks wouldn't record when running from OpenStMap if a period hadn't been set up first

master
Gordon Williams 2021-08-16 20:13:34 +01:00
parent 6afd7ae7f6
commit a10427e76b
3 changed files with 5 additions and 7 deletions

View File

@ -497,7 +497,7 @@
{ "id": "gpsrec", { "id": "gpsrec",
"name": "GPS Recorder", "name": "GPS Recorder",
"icon": "app.png", "icon": "app.png",
"version":"0.22", "version":"0.23",
"interface": "interface.html", "interface": "interface.html",
"description": "Application that allows you to record a GPS track. Can run in background", "description": "Application that allows you to record a GPS track. Can run in background",
"tags": "tool,outdoors,gps,widget", "tags": "tool,outdoors,gps,widget",

View File

@ -24,3 +24,4 @@
0.20: Add documentation to explain time needed for getting a time fix 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.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.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

View File

@ -4,7 +4,7 @@
var fixToggle = false; // toggles once for each reading var fixToggle = false; // toggles once for each reading
var gpsTrack; // file for GPS track var gpsTrack; // file for GPS track
var gpsOn = false; var gpsOn = false;
var lastFixTime; var lastFixTime = Date.now();
// draw your widget // draw your widget
function draw() { function draw() {
@ -26,9 +26,7 @@
fixToggle = !fixToggle; fixToggle = !fixToggle;
WIDGETS["gpsrec"].draw(); WIDGETS["gpsrec"].draw();
if (hasFix) { if (hasFix) {
var period = 1000000; var period = fix.time.getTime() - lastFixTime;
if (lastFixTime!==undefined)
period = fix.time.getTime() - lastFixTime;
if (period+500 > settings.period*1000) { // round up if (period+500 > settings.period*1000) { // round up
lastFixTime = fix.time.getTime(); lastFixTime = fix.time.getTime();
try { try {
@ -78,8 +76,7 @@
reload(); reload();
Bangle.drawWidgets(); // relayout all widgets Bangle.drawWidgets(); // relayout all widgets
},plotTrack:function(m) { // m=instance of openstmap module },plotTrack:function(m) { // m=instance of openstmap module
settings = require("Storage").readJSON("gpsrec.json",1)||{}; // if we're here, settings was already loaded
settings.file |= 0;
var n = settings.file.toString(36); var n = settings.file.toString(36);
var f = require("Storage").open(".gpsrc"+n,"r"); var f = require("Storage").open(".gpsrc"+n,"r");
var l = f.readLine(f); var l = f.readLine(f);