From 0e4181b345c3eee4525886c7b2985ab1d7e3d157 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Mon, 4 Aug 2025 11:16:47 -0400 Subject: [PATCH 1/6] Fix percentage not updating. --- apps/powermanager/boot.js | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/apps/powermanager/boot.js b/apps/powermanager/boot.js index 64267daa7..f5f670dfc 100644 --- a/apps/powermanager/boot.js +++ b/apps/powermanager/boot.js @@ -1,9 +1,10 @@ + (function() { var settings = Object.assign( require('Storage').readJSON("powermanager.default.json", true) || {}, require('Storage').readJSON("powermanager.json", true) || {} ); - + var savedBatPercent=E.getBattery(); if (settings.log) { let logFile = require('Storage').open("powermanager.log","a"); let def = require('Storage').readJSON("powermanager.def.json", true) || {}; @@ -77,7 +78,7 @@ })(Bangle[functionName]); } - + let functions = {}; let wrapDeferred = ((o,t) => (a) => { if (a == eval || typeof a == "string") { return o.apply(this, arguments); @@ -133,25 +134,17 @@ handleCharging(Bangle.isCharging()); } - var savedBatPercent=E.getBattery(); + if (settings.forceMonoPercentage){ - var newPercent =Math.round((E.getBattery()+E.getBattery()+E.getBattery()+E.getBattery()+E.getBattery()+E.getBattery())/6); - + var oldGetBattery=E.getBattery; E.getBattery = function() { - - if(Bangle.isCharging()){ - if(newPercent > savedBatPercent) - savedBatPercent = newPercent; - }else{ - if(newPercent < savedBatPercent) - savedBatPercent = newPercent; - } - return savedBatPercent; - }; + var newPercent =Math.round((oldGetBattery()+oldGetBattery()+oldGetBattery()+oldGetBattery()+oldGetBattery()+oldGetBattery())/6); + return newPercent; + } } if (settings.forceMonoVoltage){ - var v = (NRF.getBattery()+NRF.getBattery()+NRF.getBattery()+NRF.getBattery()+NRF.getBattery()+NRF.getBattery())/6; + var v = (NRF.getBattery()+NRF.getBattery()+NRF.getBattery()+NRF.getBattery())/4; var ov = NRF.getBattery; NRF.getBattery = function() { var current = (ov()+ov()+ov()+ov())/4; From 0b5260d791aecb33b3f3875dbb132f6ff3b37e65 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Mon, 4 Aug 2025 11:31:22 -0400 Subject: [PATCH 2/6] Revert to old stablePercentage function --- apps/powermanager/boot.js | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/apps/powermanager/boot.js b/apps/powermanager/boot.js index f5f670dfc..c35ec1546 100644 --- a/apps/powermanager/boot.js +++ b/apps/powermanager/boot.js @@ -1,10 +1,9 @@ - (function() { var settings = Object.assign( require('Storage').readJSON("powermanager.default.json", true) || {}, require('Storage').readJSON("powermanager.json", true) || {} ); - var savedBatPercent=E.getBattery(); + if (settings.log) { let logFile = require('Storage').open("powermanager.log","a"); let def = require('Storage').readJSON("powermanager.def.json", true) || {}; @@ -13,7 +12,7 @@ let hw = require('Storage').readJSON("powermanager.hw.json", true) || {}; if (!hw.start) hw.start = Date.now(); if (!hw.power) hw.power = {}; - + const saveEvery = 1000 * 60 * 5; const TO_WRAP = ["GPS","Compass","Barometer","HRM","LCD"]; @@ -29,9 +28,7 @@ require('Storage').writeJSON("powermanager.hw.json", hw); } } - - - + setInterval(save, saveEvery); E.on("kill", ()=>{ @@ -134,13 +131,15 @@ handleCharging(Bangle.isCharging()); } - if (settings.forceMonoPercentage){ - var oldGetBattery=E.getBattery; + var p = (E.getBattery()+E.getBattery()+E.getBattery()+E.getBattery())/4; + var op = E.getBattery; E.getBattery = function() { - var newPercent =Math.round((oldGetBattery()+oldGetBattery()+oldGetBattery()+oldGetBattery()+oldGetBattery()+oldGetBattery())/6); - return newPercent; - } + var current = Math.round((op()+op()+op()+op())/4); + if (Bangle.isCharging() && current > p) p = current; + if (!Bangle.isCharging() && current < p) p = current; + return p; + }; } if (settings.forceMonoVoltage){ From 017989fb7031d27e53847ec9684f95a422bfb4dd Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Mon, 4 Aug 2025 12:00:07 -0400 Subject: [PATCH 3/6] Update metadata.json --- apps/powermanager/metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/powermanager/metadata.json b/apps/powermanager/metadata.json index fed7e3bb3..49c77c9d8 100644 --- a/apps/powermanager/metadata.json +++ b/apps/powermanager/metadata.json @@ -2,7 +2,7 @@ "id": "powermanager", "name": "Power Manager", "shortName": "Power Manager", - "version": "0.12", + "version": "0.13", "description": "Allow configuration of warnings for battery charging, stabilization of voltage, stabilization of battery percentage, and battery logging.", "icon": "app.png", "type": "bootloader", From c7d8de808c6fddc4305c3c626f5bc6b154065ca2 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Mon, 4 Aug 2025 12:00:35 -0400 Subject: [PATCH 4/6] Update ChangeLog --- apps/powermanager/ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/powermanager/ChangeLog b/apps/powermanager/ChangeLog index d5abdc79b..d660ed56d 100644 --- a/apps/powermanager/ChangeLog +++ b/apps/powermanager/ChangeLog @@ -14,3 +14,4 @@ Log additional timestamp for trace log 0.11: Minor code improvements 0.12: Round monotonic percentage, rename to stable percentage/voltage +0.13: Fix stable percentage not updating From 26cdee6059588e4ea17f1bcf32d9b73c61f1b0fd Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Mon, 4 Aug 2025 16:06:27 -0400 Subject: [PATCH 5/6] Fix percentage rounding --- apps/powermanager/boot.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/powermanager/boot.js b/apps/powermanager/boot.js index c35ec1546..2961c04c5 100644 --- a/apps/powermanager/boot.js +++ b/apps/powermanager/boot.js @@ -132,7 +132,7 @@ } if (settings.forceMonoPercentage){ - var p = (E.getBattery()+E.getBattery()+E.getBattery()+E.getBattery())/4; + var p = Math.round((E.getBattery()+E.getBattery()+E.getBattery()+E.getBattery())/4); var op = E.getBattery; E.getBattery = function() { var current = Math.round((op()+op()+op()+op())/4); From a8a7ea824de2e5d09f197d49694f41ad81bc312f Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Mon, 4 Aug 2025 21:25:27 -0400 Subject: [PATCH 6/6] Fix lint error --- apps/powermanager/boot.js | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/powermanager/boot.js b/apps/powermanager/boot.js index 2961c04c5..898b75cbc 100644 --- a/apps/powermanager/boot.js +++ b/apps/powermanager/boot.js @@ -75,7 +75,6 @@ })(Bangle[functionName]); } - let functions = {}; let wrapDeferred = ((o,t) => (a) => { if (a == eval || typeof a == "string") { return o.apply(this, arguments);