From 5a80d341b5398096ce16f0aefc0a5dd933027a24 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Tue, 24 Jun 2025 14:30:07 -0400 Subject: [PATCH 01/13] Round percentage --- apps/powermanager/boot.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/powermanager/boot.js b/apps/powermanager/boot.js index c35ec1546..f03d8f836 100644 --- a/apps/powermanager/boot.js +++ b/apps/powermanager/boot.js @@ -12,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"]; @@ -138,7 +138,7 @@ 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; + return Math.round(p); }; } From e2253eaa451aa435a5c4e002099148dcea727587 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Tue, 24 Jun 2025 15:49:49 -0400 Subject: [PATCH 02/13] Update boot.js --- 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 f03d8f836..6bf45400f 100644 --- a/apps/powermanager/boot.js +++ b/apps/powermanager/boot.js @@ -74,7 +74,7 @@ return result; })(Bangle[functionName]); } - + /* exported functions */ let functions = {}; let wrapDeferred = ((o,t) => (a) => { if (a == eval || typeof a == "string") { From 08078f3cd0f507bf6e3a0e5bad91963d03d1d296 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Tue, 24 Jun 2025 15:53:00 -0400 Subject: [PATCH 03/13] Update boot.js --- apps/powermanager/boot.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/powermanager/boot.js b/apps/powermanager/boot.js index 6bf45400f..05d3a5a43 100644 --- a/apps/powermanager/boot.js +++ b/apps/powermanager/boot.js @@ -1,3 +1,4 @@ +/* no-unused-vars */ (function() { var settings = Object.assign( require('Storage').readJSON("powermanager.default.json", true) || {}, @@ -163,3 +164,4 @@ }); } })(); +/* no-unused-vars */ From 149975e2c692ca0a82347c65f75f548be435bf01 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Tue, 24 Jun 2025 15:54:26 -0400 Subject: [PATCH 04/13] Update boot.js --- apps/powermanager/boot.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/powermanager/boot.js b/apps/powermanager/boot.js index 05d3a5a43..1f36bb710 100644 --- a/apps/powermanager/boot.js +++ b/apps/powermanager/boot.js @@ -1,4 +1,4 @@ -/* no-unused-vars */ + (function() { var settings = Object.assign( require('Storage').readJSON("powermanager.default.json", true) || {}, @@ -76,7 +76,7 @@ })(Bangle[functionName]); } /* exported functions */ - let functions = {}; + var functions = {}; let wrapDeferred = ((o,t) => (a) => { if (a == eval || typeof a == "string") { return o.apply(this, arguments); @@ -164,4 +164,4 @@ }); } })(); -/* no-unused-vars */ + From 1a84fdfd0dd26c46664e71fa2c353c65b6e1dcc2 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Tue, 24 Jun 2025 17:02:33 -0400 Subject: [PATCH 05/13] Update boot.js --- apps/powermanager/boot.js | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/powermanager/boot.js b/apps/powermanager/boot.js index 1f36bb710..a7b38801c 100644 --- a/apps/powermanager/boot.js +++ b/apps/powermanager/boot.js @@ -76,7 +76,6 @@ })(Bangle[functionName]); } /* exported functions */ - var functions = {}; let wrapDeferred = ((o,t) => (a) => { if (a == eval || typeof a == "string") { return o.apply(this, arguments); From 3b7a89c494339e79aa48d4e7d7837120305595b8 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Wed, 25 Jun 2025 20:32:09 -0400 Subject: [PATCH 06/13] Fix monotonic percentage --- apps/powermanager/boot.js | 40 +++++++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/apps/powermanager/boot.js b/apps/powermanager/boot.js index a7b38801c..b2327a4d3 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) || {} ); - + if (settings.log) { let logFile = require('Storage').open("powermanager.log","a"); let def = require('Storage').readJSON("powermanager.def.json", true) || {}; @@ -29,7 +28,9 @@ require('Storage').writeJSON("powermanager.hw.json", hw); } } - + + + setInterval(save, saveEvery); E.on("kill", ()=>{ @@ -75,7 +76,8 @@ return result; })(Bangle[functionName]); } - /* exported functions */ + + let functions = {}; let wrapDeferred = ((o,t) => (a) => { if (a == eval || typeof a == "string") { return o.apply(this, arguments); @@ -131,15 +133,30 @@ handleCharging(Bangle.isCharging()); } + var savedBatPercent=E.getBattery(); if (settings.forceMonoPercentage){ - var p = (E.getBattery()+E.getBattery()+E.getBattery()+E.getBattery())/4; - var op = E.getBattery; + var newPercent =Math.round((E.getBattery()+E.getBattery()+E.getBattery()+E.getBattery()+E.getBattery()+E.getBattery())/6); + E.getBattery = function() { - var current = Math.round((op()+op()+op()+op())/4); - if (Bangle.isCharging() && current > p) p = current; - if (!Bangle.isCharging() && current < p) p = current; - return Math.round(p); - }; + var percentToReturn; + if(Bangle.isCharging()){ + //only go up + if(newPercent>savedBatPercent){ + percentToReturn=newPercent; + savedBatPercent=newPercent; + }else{ + percentToReturn=savedBatPercent; + } + }else{ + if(newPercent Date: Wed, 25 Jun 2025 20:33:45 -0400 Subject: [PATCH 07/13] Fix ESLint error --- 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 b2327a4d3..18e69e077 100644 --- a/apps/powermanager/boot.js +++ b/apps/powermanager/boot.js @@ -77,7 +77,7 @@ })(Bangle[functionName]); } - let functions = {}; + let wrapDeferred = ((o,t) => (a) => { if (a == eval || typeof a == "string") { return o.apply(this, arguments); From 4fbffe2d1e485fcbe8eb2964bfd5713eb4a1591d Mon Sep 17 00:00:00 2001 From: RKBoss6 <178680496+RKBoss6@users.noreply.github.com> Date: Tue, 22 Jul 2025 09:33:22 -0400 Subject: [PATCH 08/13] Update boot.js --- 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 18e69e077..a9214da1d 100644 --- a/apps/powermanager/boot.js +++ b/apps/powermanager/boot.js @@ -160,7 +160,7 @@ } if (settings.forceMonoVoltage){ - var v = (NRF.getBattery()+NRF.getBattery()+NRF.getBattery()+NRF.getBattery())/4; + var v = (NRF.getBattery()+NRF.getBattery()+NRF.getBattery()+NRF.getBattery()+NRF.getBattery()+NRF.getBattery())/6; var ov = NRF.getBattery; NRF.getBattery = function() { var current = (ov()+ov()+ov()+ov())/4; From 7f3f9c610b0dc9b6e18a963ffa1e32ec89788edc Mon Sep 17 00:00:00 2001 From: RKBoss6 <178680496+RKBoss6@users.noreply.github.com> Date: Tue, 22 Jul 2025 09:35:22 -0400 Subject: [PATCH 09/13] Update metadata.json --- apps/powermanager/metadata.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/powermanager/metadata.json b/apps/powermanager/metadata.json index 1c5900c7e..fed7e3bb3 100644 --- a/apps/powermanager/metadata.json +++ b/apps/powermanager/metadata.json @@ -2,8 +2,8 @@ "id": "powermanager", "name": "Power Manager", "shortName": "Power Manager", - "version": "0.11", - "description": "Allow configuration of warnings and thresholds for battery charging and display.", + "version": "0.12", + "description": "Allow configuration of warnings for battery charging, stabilization of voltage, stabilization of battery percentage, and battery logging.", "icon": "app.png", "type": "bootloader", "tags": "tool", From eb940bc384d5dfd6e8116be1e6a9392881034669 Mon Sep 17 00:00:00 2001 From: RKBoss6 <178680496+RKBoss6@users.noreply.github.com> Date: Tue, 22 Jul 2025 09:36:04 -0400 Subject: [PATCH 10/13] Update ChangeLog --- apps/powermanager/ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/powermanager/ChangeLog b/apps/powermanager/ChangeLog index 6fc9eb0c4..d5abdc79b 100644 --- a/apps/powermanager/ChangeLog +++ b/apps/powermanager/ChangeLog @@ -13,3 +13,4 @@ 0.10: Use charging state on boot for auto calibration Log additional timestamp for trace log 0.11: Minor code improvements +0.12: Round monotonic percentage, rename to stable percentage/voltage From c18a2201f5445eb5c7d6c3877688edbe75b03ebb Mon Sep 17 00:00:00 2001 From: RKBoss6 <178680496+RKBoss6@users.noreply.github.com> Date: Tue, 22 Jul 2025 09:37:30 -0400 Subject: [PATCH 11/13] Rename to stable voltage and percentage in settings --- apps/powermanager/settings.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/powermanager/settings.js b/apps/powermanager/settings.js index d2b2097f8..e67b87868 100644 --- a/apps/powermanager/settings.js +++ b/apps/powermanager/settings.js @@ -27,13 +27,13 @@ 'Widget': function() { E.showMenu(submenu_widget); }, - 'Monotonic percentage': { + 'Stable Percentage': { value: !!settings.forceMonoPercentage, onchange: v => { writeSettings("forceMonoPercentage", v); } }, - 'Monotonic voltage': { + 'Stable Voltage': { value: !!settings.forceMonoVoltage, onchange: v => { writeSettings("forceMonoVoltage", v); From a383435668971dcdcc71a14e279c248788bce5f0 Mon Sep 17 00:00:00 2001 From: RKBoss6 Date: Wed, 30 Jul 2025 11:07:57 -0400 Subject: [PATCH 12/13] Update boot.js as per @bobrippling's review --- apps/powermanager/boot.js | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/apps/powermanager/boot.js b/apps/powermanager/boot.js index a9214da1d..f7beca68e 100644 --- a/apps/powermanager/boot.js +++ b/apps/powermanager/boot.js @@ -140,22 +140,13 @@ E.getBattery = function() { var percentToReturn; if(Bangle.isCharging()){ - //only go up - if(newPercent>savedBatPercent){ - percentToReturn=newPercent; - savedBatPercent=newPercent; - }else{ - percentToReturn=savedBatPercent; - } + if(newPercent > savedBatPercent) + savedBatPercent = newPercent; }else{ - if(newPercent Date: Wed, 30 Jul 2025 17:24:56 -0400 Subject: [PATCH 13/13] Fix lint error --- 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 f7beca68e..64267daa7 100644 --- a/apps/powermanager/boot.js +++ b/apps/powermanager/boot.js @@ -138,7 +138,7 @@ var newPercent =Math.round((E.getBattery()+E.getBattery()+E.getBattery()+E.getBattery()+E.getBattery()+E.getBattery())/6); E.getBattery = function() { - var percentToReturn; + if(Bangle.isCharging()){ if(newPercent > savedBatPercent) savedBatPercent = newPercent;