powermanager - Initial implementation of widget showing approximate power use
parent
e4fd6d4a88
commit
b778d476b7
|
|
@ -13,6 +13,7 @@
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"powermanager.boot.js","url":"boot.js"},
|
{"name":"powermanager.boot.js","url":"boot.js"},
|
||||||
{"name":"powermanager.settings.js","url":"settings.js"},
|
{"name":"powermanager.settings.js","url":"settings.js"},
|
||||||
|
{"name":"powermanager.wid.js","url":"settings.js"},
|
||||||
{"name":"powermanager","url":"lib.js"},
|
{"name":"powermanager","url":"lib.js"},
|
||||||
{"name":"powermanager.default.json","url":"default.json"}
|
{"name":"powermanager.default.json","url":"default.json"}
|
||||||
],
|
],
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
/* run widgets in their own function scope so they don't interfere with
|
||||||
|
currently-running apps */
|
||||||
|
(() => {
|
||||||
|
|
||||||
|
const APPROX_IDLE = 0.3;
|
||||||
|
const APPROX_HIGH_BW_BLE = 0.5;
|
||||||
|
const APPROX_COMPASS = process.HWVERSION == 2 ? 5.5 : 2;
|
||||||
|
const APPROX_HRM = process.HWVERSION == 2 ? 1 : 2.5;
|
||||||
|
const APPROX_CPU = 3;
|
||||||
|
const APPROX_GPS = process.HWVERSION == 2 ? 25 : 30;
|
||||||
|
const APPROX_TOUCH = 2.5;
|
||||||
|
const APPROX_BACKLIGHT = process.HWVERSION == 2 ? 16 : 40;
|
||||||
|
const MAX = APPROX_IDLE + APPROX_HIGH_BW_BLE + APPROX_COMPASS + APPROX_HRM + APPROX_CPU + APPROX_GPS + APPROX_TOUCH + APPROX_BACKLIGHT;
|
||||||
|
|
||||||
|
function draw() {
|
||||||
|
g.reset(); // reset the graphics context to defaults (color/font/etc)
|
||||||
|
// add your code
|
||||||
|
|
||||||
|
let current = APPROX_IDLE;
|
||||||
|
if (Bangle.isGPSOn()) current += APPROX_GPS;
|
||||||
|
if (Bangle.isHRMOn()) current += APPROX_HRM;
|
||||||
|
if (Bangle.isLocked()) current += APPROX_TOUCH + APPROX_BACKLIGHT;
|
||||||
|
if (Bangle.isCompassOn()) current += APPROX_COMPASS;
|
||||||
|
g.setColor(g.theme.fg);
|
||||||
|
g.setFont6x15();
|
||||||
|
g.setFontAlign(1,-1);
|
||||||
|
g.drawString("mA", this.x + 14, this.y+13);
|
||||||
|
g.setFont6x15();
|
||||||
|
g.setFontAlign(1,-1);
|
||||||
|
g.drawString(current.toFixed(0), this.x + 14, this.y);
|
||||||
|
|
||||||
|
timeout = 5000;
|
||||||
|
if (this.timeoutId !== undefined) {
|
||||||
|
clearTimeout(this.timeoutId);
|
||||||
|
}
|
||||||
|
this.timeoutId = setTimeout(()=>{
|
||||||
|
this.timeoutId = undefined;
|
||||||
|
this.draw();
|
||||||
|
}, timeout);
|
||||||
|
}
|
||||||
|
|
||||||
|
// add your widget
|
||||||
|
WIDGETS.powermanager={
|
||||||
|
area:"tl",
|
||||||
|
width: 14,
|
||||||
|
draw:draw
|
||||||
|
};
|
||||||
|
})()
|
||||||
Loading…
Reference in New Issue