From c812b6225927b0bb43ec995c16752d1f5c5bb545 Mon Sep 17 00:00:00 2001 From: Giles Booth Date: Tue, 23 Aug 2022 20:19:30 +0100 Subject: [PATCH] major bug fix add Boolean to check if next tide time is tomorrow to avoid cascading time flipping --- apps/suw/app.js | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/apps/suw/app.js b/apps/suw/app.js index ac828a93e..0d869dbac 100644 --- a/apps/suw/app.js +++ b/apps/suw/app.js @@ -10,6 +10,9 @@ var settings = Object.assign({ nextTideMin: 0, }, require('Storage').readJSON("suw.json", true) || {}); +// flag to see if next tide time has crossed midnight and need to halt tide time swapping +var tideNextDay = false; + // assume next tide is 6h 12m later var tide1h = settings.nextTideHour; var tide1m = settings.nextTideMin; @@ -169,11 +172,10 @@ function draw() { g.drawString("Lon "+longitude, xyCenter, yposLon, true); } else { - var textTime = hours + minutes; // use this for making time comparisons -// print(textTime); + var textTime = hours + minutes; // use this for making simple time comparisons var textNextTide = numToString(tide1h)+numToString(tide1m); print(textNextTide); - if (Number(textTime) > Number(textNextTide)) { + if (Number(textTime) > Number(textNextTide) && (!tideNextDay)) { print("time swap needed"); tide1h = tide2h; tide1m = tide2m; @@ -191,15 +193,17 @@ function draw() { } if (tide2type === "low ") { tide2type = "high"; -// tide1type = "low "; } else { tide2type = "low "; -// tide1type = "high"; -} - - - + } + if (Number(textNextTide) < Number(textTime)) { + tideNextDay = true; + } + else { + tideNextDay = false; + } + } g.clearRect(0, xyCenter+17, 175, 175); g.drawString(numToString(tide1h)+numToString(tide1m)+" "+numToString(tide2h)+numToString(tide2m) , xyCenter, 138, true); @@ -207,7 +211,7 @@ function draw() { g.drawImage(seaImg, xyCenter-16, xyCenter+17); } -// print(tide1h,tide1m,tide1type,tide2h,tide2m,tide2type) +// print(tide1h,tide1m,tide1type,tide2h,tide2m,tide2type); queueDraw(); }