Tidy graphics

pull/1189/head
Ivor Hewitt 2021-12-28 18:25:43 +00:00
parent 4ca3a2a124
commit 8c416bab55
2 changed files with 69 additions and 36 deletions

View File

@ -2,20 +2,32 @@
Bangle.setLCDPower(1);
Bangle.setLCDTimeout(0);
var btm = g.getHeight() - 1;
function onCore(c) {
var px = g.getWidth() / 2;
g.setFontAlign(0, 0);
g.clearRect(0, 24, g.getWidth(), g.getHeight() - 24);
var core = "Core: " + c.core + c.unit;
var skin = "Skin: " + c.skin + c.unit;
g.setFontVector(24).drawString(core, px, 45);
g.setFontVector(24).drawString(skin, px, 65);
var img = {
width : 146,
height : 48,
bpp : 4,
transparent : 0,
palette : new Uint16Array([ 65535, 65535, 2854, 1419 ]),
buffer :
require("heatshrink")
.decompress(atob(
"AEUDmczmBD/I4xJ/AAMCkBHFAAJG8kQABJAJHFSVURAAUQRphHCkQGBJAySngJHDJRhHEJALZDAgiSBEQ0RPBIAKHAwQQI4xIEaoQFEEZpIULSRHFkDZDBwZIMEYhITa44SKSAxIDSARIDJ4IjKJCpHNEoiQGJDA2CJCQSOCYaQGJDBsCGiKQGTZIJCI4xBEJBAAEFpQAPDQoMGBQyOGIJJPGF6AALC5glCbJAQEgZCEAoowTSBypJBwKQMIQaSBAgZIJWw5ITB5RTDSBLbEAAjDOPRIVabIiQFJBCQKPYhIVCRxIEBg7WDSBpIVbJ5IQJIqQBgZIiCh7ZLJIriDbhJI3JoxIebIZITI6BIjCZ5IRI4RIPHAYAJJH4AIUAJIzHIhI/SAwzBJH6QGJH5HIHApI2HCIAJL4pITkATOJQJIMHCJeFJD8zaZCQHJCEBJCUCJCKPBJBhWGJEcia5oACJBSfHJB4QMJA6SLI4ZIKPAg3QJCUAJCbbBJETbPJAbbKbIhIBYJpIQbZ5UDbZzZFPBxIVSRIOBJA5JISAhIIF4ZIUfQpJHEwQKDJAhJHbJbBJJCIZECY4KGSQoABBIZOBSBbbIJC6IEBQqSJJoyQLbZBIRbYoAKJAaSHJAjbCF541RSRISLSRkgJAKQKbY5ISJJyQDSRyQMbYxITChhHFSRhGMbY5IUCpRHHJJZITiBIVbpBHJbpJHPFhBITfI4ANIwcgI6AAV"))
}
Bangle.on('CoreTemp', onCore);
function onCore(c) {
var core = "Core: " + c.core + "°" + c.unit;
var skin = "Skin: " + c.skin + "°" + c.unit;
var px = g.getWidth() / 2;
g.setFontAlign(0, 0);
g.clearRect(0, 24, g.getWidth(), g.getHeight() - 24);
g.drawImage(img, 0, 30);
g.setColor(0xC618); // Light gray
g.setFont("6x8", 3).drawString(core, px, 48 + 48);
g.setFont("6x8", 3).drawString(skin, px, 48 + 48 + 24);
} Bangle.on('CoreTemp', onCore);
g.clear();
Bangle.loadWidgets();
@ -23,4 +35,3 @@ Bangle.drawWidgets();
g.reset().setFont("6x8", 2).setFontAlign(0, 0);
g.drawString("Please wait...", g.getWidth() / 2, g.getHeight() / 2 - 16);

View File

@ -1,47 +1,69 @@
// Widget to show sensor status
// TODO Change to generic multiple sensor
(() => {
var settings = {};
var count=0;
var count = 0;
var img0 = {
width : 24,
height : 24,
bpp : 4,
transparent : 0,
buffer :
require("heatshrink")
.decompress(atob(
"AA0IxGIBAtms0ABQOIwAKFsAWCDAkGBYQUCBwIKEBYgmBBYoHBC4oKDBAILECwRSFDQQLBsBLDBYg4CNYoKBwALGDQYLCQpALaF45jBBZBfJMIZ3GZgwkGZYibCDIMGWoILDWYbBDd4gMFWoTvFYYgAFEYYHDA=="))
};
var img1 = {
width : 24,
height : 24,
bpp : 3,
transparent : 0,
buffer :
require("heatshrink")
.decompress(atob(
"AAkCpMgAwYFBiVJkgHCAoMAyQIBwAIBAoMEyEABAUkBAkEBAdICIkBBAIdBBAcJEwo1BBAI4EAoJBEKAMAiAIEAAIvBLgosBBCYjFJQIIFKwJHFBARZFBwRrCNAKbCC4J0CpApFR4REGBAWShIxDPQSSCYogvEA="))
};
// draw your widget
function draw() {
if (!settings.enabled) return;
if (!settings.enabled)
return;
g.reset();
g.setFontAlign(0,0);
g.clearRect(this.x,this.y,this.x+23,this.y+23);
g.setColor((count&1)?"#00ff00":"#80ff00");
g.fillCircle(this.x+6,this.y+6,4);
g.fillCircle(this.x+16,this.y+16,4);
g.setColor(-1); // change color back to be nice to other apps
g.setFontAlign(0, 0);
g.clearRect(this.x, this.y, this.x + 23, this.y + 23);
g.drawImage((count & 1) img1: img0, this.x, this.y);
}
// Set a listener to 'twinkle'
// Set a listener to 'blink'
function onTemp(temp) {
count=count+1;
WIDGETS["sensors"].draw();
count = count + 1;
WIDGETS["coretemp"].draw();
}
// Called by sensor app to update status
function reload() {
settings = require("Storage").readJSON("coretemp.json",1)||{};
// settings.fileNbr |= 0;
settings = require("Storage").readJSON("coretemp.json", 1) || {};
Bangle.removeListener('CoreTemp',onTemp);
Bangle.removeListener('CoreTemp', onTemp);
if (settings.enabled) {
WIDGETS["sensors"].width = 24;
WIDGETS["coretemp"].width = 24;
Bangle.on('CoreTemp', onTemp);
} else {
WIDGETS["sensors"].width = 0;
WIDGETS["coretemp"].width = 0;
count = 0;
}
}
// add the widget
WIDGETS["sensors"]={area:"tl",width:24,draw:draw,reload:function() {
reload();
Bangle.drawWidgets(); // relayout all widgets
}};
WIDGETS["coretemp"] = {
area : "tl",
width : 24,
draw : draw,
reload : function() {
reload();
Bangle.drawWidgets(); // relayout all widgets
}
};
// load settings, set correct widget width
reload();
})()