From 455be9f0a23a55acd701e16045b1831950b2cbf8 Mon Sep 17 00:00:00 2001 From: Lee Bussy Date: Fri, 4 Dec 2020 12:47:31 -0600 Subject: [PATCH] Fix rollover issue, simplify --- platformio.ini | 2 +- src/bubbles.cpp | 1 + src/uptime.cpp | 34 +++++++++++++--------------------- 3 files changed, 15 insertions(+), 22 deletions(-) diff --git a/platformio.ini b/platformio.ini index e45ba02..1ee4bdd 100644 --- a/platformio.ini +++ b/platformio.ini @@ -46,7 +46,7 @@ lib_deps = monitor_filters = esp8266_exception_decoder ; log2file -build_type = release +build_type = debug [env:d1_mini] board_build.filesystem = littlefs diff --git a/src/bubbles.cpp b/src/bubbles.cpp index c947c1c..bb5f686 100644 --- a/src/bubbles.cpp +++ b/src/bubbles.cpp @@ -51,6 +51,7 @@ bool Bubbles::update() lastVes = getTemp(VESSENSOR); // Push values to circular buffers + // TODO: Handle aging out a sensor if it becomes disconnected tempAmbAvg.push(lastAmb); tempVesAvg.push(lastVes); bubAvg.push(lastBpm); diff --git a/src/uptime.cpp b/src/uptime.cpp index aee4f5d..acc5d22 100644 --- a/src/uptime.cpp +++ b/src/uptime.cpp @@ -70,12 +70,10 @@ const int uptimeHours(bool refr) getNow(); // Make sure we are current if (refr) { - // Refresh values - unsigned long m = uptimeNow; - // Subtract millis value for any full days - m = m - (uptimeDays() * DAY_MILLIS); + // Refresh values: + // Subtract millis value for any full days via modulo // Calculate full hours from remainder - hours = (int)floor(m / HOUR_MILLIS); + hours = (int)floor((uptimeNow % DAY_MILLIS) / HOUR_MILLIS); } return hours; } @@ -85,12 +83,10 @@ const int uptimeMinutes(bool refr) getNow(); // Make sure we are current if (refr) { - // Refresh values - unsigned long m = uptimeNow; - // Subtract millis value for any full hours - m = m - (uptimeHours() * HOUR_MILLIS); + // Refresh values: + // Subtract millis value for any full hours via modulo // Calculate full minutes from remainder - minutes = (int)floor(m / MIN_MILLIS); + minutes = (int)floor((uptimeNow % HOUR_MILLIS) / MIN_MILLIS); } return minutes; } @@ -100,12 +96,10 @@ const int uptimeSeconds(bool refr) getNow(); // Make sure we are current if (refr) { - // Refresh values - unsigned long m = uptimeNow; - // Subtract millis value for any full minutes - m = m - (uptimeMinutes() * MIN_MILLIS); + // Refresh values: + // Subtract millis value for any full minutes via modulo // Calculate full seconds from remainder - seconds = (int)floor(m / SEC_MILLIS); + seconds = (int)floor((uptimeNow % MIN_MILLIS) / SEC_MILLIS); } return seconds; } @@ -115,12 +109,10 @@ const int uptimeMillis(bool refr) getNow(); // Make sure we are current if (refr) { - // Refresh values - unsigned long m = uptimeNow; - // Subtract millis value for any full seconds - m = m - (uptimeSeconds() * SEC_MILLIS); - // mills value is remainder - mills = m; + // Refresh values: + // Subtract millis value for any full seconds via modulo + // Return remainder millis + mills = (int)floor((uptimeNow % SEC_MILLIS)); } return mills; }