Have it average readings
After 10 consecutive readings it starts averaging the temp displayed from a FIFO cache. It slows down the responsiveness but delivers better figures over time instead of jumping degrees +/-.master
parent
9769934d71
commit
b192f75b55
|
|
@ -1,26 +1,25 @@
|
||||||
function onTemperature(p) {
|
function drawTemperature() {
|
||||||
g.reset(1).clearRect(0,24,g.getWidth(),g.getHeight());
|
g.reset(1).clearRect(0,24,g.getWidth(),g.getHeight());
|
||||||
g.setFont("6x8",2).setFontAlign(0,0);
|
g.setFont("6x8",2).setFontAlign(0,0);
|
||||||
var x = g.getWidth()/2;
|
var x = g.getWidth()/2;
|
||||||
var y = g.getHeight()/2 + 10;
|
var y = g.getHeight()/2 + 10;
|
||||||
g.drawString("Temp", x, y - 45);
|
g.drawString("Temp", x, y - 45);
|
||||||
g.setFontVector(70).setFontAlign(0,0);
|
g.setFontVector(70).setFontAlign(0,0);
|
||||||
var t = require('locale').temp(p.temperature);
|
var h = E.getTemperature();
|
||||||
|
if (avg.length < 10) {
|
||||||
|
avg[avg.length] = h;
|
||||||
|
} else {
|
||||||
|
avg.shift();
|
||||||
|
avg[avg.length] = h;
|
||||||
|
h = ((avg[0] + avg[1] + avg[2] + avg[3] + avg[4] + avg[5] + avg[6] + avg[7] + avg[8] + avg[9]) / 10);
|
||||||
|
}
|
||||||
|
var t = require('locale').temp(h);
|
||||||
g.drawString(t, x, y);
|
g.drawString(t, x, y);
|
||||||
}
|
}
|
||||||
|
const avg = [];
|
||||||
function drawTemperature() {
|
|
||||||
onTemperature({
|
|
||||||
temperature : E.getTemperature()
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
setInterval(function() {
|
setInterval(function() {
|
||||||
drawTemperature();
|
drawTemperature();
|
||||||
}, 2000);
|
}, 2000);
|
||||||
drawTemperature();
|
|
||||||
E.showMessage("Loading...");
|
E.showMessage("Loading...");
|
||||||
Bangle.loadWidgets();
|
Bangle.loadWidgets();
|
||||||
Bangle.drawWidgets();
|
Bangle.drawWidgets();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue