BangleApps/apps/thermom/app.js

45 lines
1.2 KiB
JavaScript

// history of temperature readings
var history = [];
// When we get temperature...
function onTemperature(p) {
var rect = Bangle.appRect;
g.reset(1).clearRect(rect.x, rect.y, rect.x2, rect.y2);
g.setFont("6x8",2).setFontAlign(0,0);
var x = (rect.x+rect.x2)/2;
var y = (rect.y+rect.y2)/2 + 10;
g.drawString("Temperature:", x, y - 45);
g.setFontVector(g.getWidth() > 200 ? 70 : 50).setFontAlign(0,0);
// Average the last 5 temperature readings
while (history.length>4) history.shift();
history.push(p.temperature);
var avrTemp = E.sum(history) / history.length;
// Draw the temperature
var t = require('locale').temp(avrTemp).replace("'","°");
g.drawString(t, x, y);
}
// Gets the temperature in the most accurate way (pressure sensor or inbuilt thermistor)
function drawTemperature() {
if (Bangle.getPressure) {
Bangle.getPressure().then(p =>{if (p) onTemperature(p);});
} else {
onTemperature({
temperature : E.getTemperature()
});
}
}
setInterval(function() {
drawTemperature();
}, 5000);
Bangle.loadWidgets();
Bangle.setUI({
mode : "custom",
back : function() {load();}
});
E.showMessage("Reading temperature...");
drawTemperature();