1
0
Fork 0

Tidy graphics

master
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.setLCDPower(1);
Bangle.setLCDTimeout(0); Bangle.setLCDTimeout(0);
var btm = g.getHeight() - 1; var btm = g.getHeight() - 1;
var img = {
function onCore(c) { width : 146,
var px = g.getWidth() / 2; height : 48,
g.setFontAlign(0, 0); bpp : 4,
g.clearRect(0, 24, g.getWidth(), g.getHeight() - 24); transparent : 0,
palette : new Uint16Array([ 65535, 65535, 2854, 1419 ]),
var core = "Core: " + c.core + c.unit; buffer :
var skin = "Skin: " + c.skin + c.unit; require("heatshrink")
.decompress(atob(
g.setFontVector(24).drawString(core, px, 45); "AEUDmczmBD/I4xJ/AAMCkBHFAAJG8kQABJAJHFSVURAAUQRphHCkQGBJAySngJHDJRhHEJALZDAgiSBEQ0RPBIAKHAwQQI4xIEaoQFEEZpIULSRHFkDZDBwZIMEYhITa44SKSAxIDSARIDJ4IjKJCpHNEoiQGJDA2CJCQSOCYaQGJDBsCGiKQGTZIJCI4xBEJBAAEFpQAPDQoMGBQyOGIJJPGF6AALC5glCbJAQEgZCEAoowTSBypJBwKQMIQaSBAgZIJWw5ITB5RTDSBLbEAAjDOPRIVabIiQFJBCQKPYhIVCRxIEBg7WDSBpIVbJ5IQJIqQBgZIiCh7ZLJIriDbhJI3JoxIebIZITI6BIjCZ5IRI4RIPHAYAJJH4AIUAJIzHIhI/SAwzBJH6QGJH5HIHApI2HCIAJL4pITkATOJQJIMHCJeFJD8zaZCQHJCEBJCUCJCKPBJBhWGJEcia5oACJBSfHJB4QMJA6SLI4ZIKPAg3QJCUAJCbbBJETbPJAbbKbIhIBYJpIQbZ5UDbZzZFPBxIVSRIOBJA5JISAhIIF4ZIUfQpJHEwQKDJAhJHbJbBJJCIZECY4KGSQoABBIZOBSBbbIJC6IEBQqSJJoyQLbZBIRbYoAKJAaSHJAjbCF541RSRISLSRkgJAKQKbY5ISJJyQDSRyQMbYxITChhHFSRhGMbY5IUCpRHHJJZITiBIVbpBHJbpJHPFhBITfI4ANIwcgI6AAV"))
g.setFontVector(24).drawString(skin, px, 65);
} }
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(); g.clear();
Bangle.loadWidgets(); Bangle.loadWidgets();
@ -23,4 +35,3 @@ Bangle.drawWidgets();
g.reset().setFont("6x8", 2).setFontAlign(0, 0); g.reset().setFont("6x8", 2).setFontAlign(0, 0);
g.drawString("Please wait...", g.getWidth() / 2, g.getHeight() / 2 - 16); 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 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 // draw your widget
function draw() { function draw() {
if (!settings.enabled) return; if (!settings.enabled)
return;
g.reset(); g.reset();
g.setFontAlign(0,0); g.setFontAlign(0, 0);
g.clearRect(this.x,this.y,this.x+23,this.y+23); g.clearRect(this.x, this.y, this.x + 23, this.y + 23);
g.setColor((count&1)?"#00ff00":"#80ff00"); g.drawImage((count & 1) img1: img0, this.x, this.y);
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
} }
// Set a listener to 'twinkle' // Set a listener to 'blink'
function onTemp(temp) { function onTemp(temp) {
count=count+1; count = count + 1;
WIDGETS["sensors"].draw(); WIDGETS["coretemp"].draw();
} }
// Called by sensor app to update status // Called by sensor app to update status
function reload() { function reload() {
settings = require("Storage").readJSON("coretemp.json",1)||{}; settings = require("Storage").readJSON("coretemp.json", 1) || {};
// settings.fileNbr |= 0;
Bangle.removeListener('CoreTemp',onTemp); Bangle.removeListener('CoreTemp', onTemp);
if (settings.enabled) { if (settings.enabled) {
WIDGETS["sensors"].width = 24; WIDGETS["coretemp"].width = 24;
Bangle.on('CoreTemp', onTemp); Bangle.on('CoreTemp', onTemp);
} else { } else {
WIDGETS["sensors"].width = 0; WIDGETS["coretemp"].width = 0;
count = 0;
} }
} }
// add the widget // add the widget
WIDGETS["sensors"]={area:"tl",width:24,draw:draw,reload:function() { WIDGETS["coretemp"] = {
reload(); area : "tl",
Bangle.drawWidgets(); // relayout all widgets width : 24,
}}; draw : draw,
reload : function() {
reload();
Bangle.drawWidgets(); // relayout all widgets
}
};
// load settings, set correct widget width // load settings, set correct widget width
reload(); reload();
})() })()