Skip to content

Commit 07ba704

Browse files
authored
Merge pull request #3904 from RKBoss6/PowerManager
[Power Manager] Round battery percentage
2 parents e20801e + 4b6f0f5 commit 07ba704

File tree

4 files changed

+25
-16
lines changed

4 files changed

+25
-16
lines changed

apps/powermanager/ChangeLog

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,4 @@
1313
0.10: Use charging state on boot for auto calibration
1414
Log additional timestamp for trace log
1515
0.11: Minor code improvements
16+
0.12: Round monotonic percentage, rename to stable percentage/voltage

apps/powermanager/boot.js

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
require('Storage').readJSON("powermanager.default.json", true) || {},
44
require('Storage').readJSON("powermanager.json", true) || {}
55
);
6-
6+
77
if (settings.log) {
88
let logFile = require('Storage').open("powermanager.log","a");
99
let def = require('Storage').readJSON("powermanager.def.json", true) || {};
@@ -12,7 +12,7 @@
1212
let hw = require('Storage').readJSON("powermanager.hw.json", true) || {};
1313
if (!hw.start) hw.start = Date.now();
1414
if (!hw.power) hw.power = {};
15-
15+
1616
const saveEvery = 1000 * 60 * 5;
1717
const TO_WRAP = ["GPS","Compass","Barometer","HRM","LCD"];
1818

@@ -28,7 +28,9 @@
2828
require('Storage').writeJSON("powermanager.hw.json", hw);
2929
}
3030
}
31-
31+
32+
33+
3234
setInterval(save, saveEvery);
3335

3436
E.on("kill", ()=>{
@@ -75,7 +77,7 @@
7577
})(Bangle[functionName]);
7678
}
7779

78-
let functions = {};
80+
7981
let wrapDeferred = ((o,t) => (a) => {
8082
if (a == eval || typeof a == "string") {
8183
return o.apply(this, arguments);
@@ -131,19 +133,25 @@
131133
handleCharging(Bangle.isCharging());
132134
}
133135

136+
var savedBatPercent=E.getBattery();
134137
if (settings.forceMonoPercentage){
135-
var p = (E.getBattery()+E.getBattery()+E.getBattery()+E.getBattery())/4;
136-
var op = E.getBattery;
138+
var newPercent =Math.round((E.getBattery()+E.getBattery()+E.getBattery()+E.getBattery()+E.getBattery()+E.getBattery())/6);
139+
137140
E.getBattery = function() {
138-
var current = Math.round((op()+op()+op()+op())/4);
139-
if (Bangle.isCharging() && current > p) p = current;
140-
if (!Bangle.isCharging() && current < p) p = current;
141-
return p;
142-
};
141+
142+
if(Bangle.isCharging()){
143+
if(newPercent > savedBatPercent)
144+
savedBatPercent = newPercent;
145+
}else{
146+
if(newPercent < savedBatPercent)
147+
savedBatPercent = newPercent;
148+
}
149+
return savedBatPercent;
150+
};
143151
}
144152

145153
if (settings.forceMonoVoltage){
146-
var v = (NRF.getBattery()+NRF.getBattery()+NRF.getBattery()+NRF.getBattery())/4;
154+
var v = (NRF.getBattery()+NRF.getBattery()+NRF.getBattery()+NRF.getBattery()+NRF.getBattery()+NRF.getBattery())/6;
147155
var ov = NRF.getBattery;
148156
NRF.getBattery = function() {
149157
var current = (ov()+ov()+ov()+ov())/4;

apps/powermanager/metadata.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
"id": "powermanager",
33
"name": "Power Manager",
44
"shortName": "Power Manager",
5-
"version": "0.11",
6-
"description": "Allow configuration of warnings and thresholds for battery charging and display.",
5+
"version": "0.12",
6+
"description": "Allow configuration of warnings for battery charging, stabilization of voltage, stabilization of battery percentage, and battery logging.",
77
"icon": "app.png",
88
"type": "bootloader",
99
"tags": "tool",

apps/powermanager/settings.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,13 @@
2727
'Widget': function() {
2828
E.showMenu(submenu_widget);
2929
},
30-
'Monotonic percentage': {
30+
'Stable Percentage': {
3131
value: !!settings.forceMonoPercentage,
3232
onchange: v => {
3333
writeSettings("forceMonoPercentage", v);
3434
}
3535
},
36-
'Monotonic voltage': {
36+
'Stable Voltage': {
3737
value: !!settings.forceMonoVoltage,
3838
onchange: v => {
3939
writeSettings("forceMonoVoltage", v);

0 commit comments

Comments
 (0)