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 +/-.
pull/1092/head
elrod16 2021-12-16 14:44:52 -05:00 committed by GitHub
parent 9769934d71
commit b192f75b55
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 11 additions and 12 deletions

View File

@ -1,26 +1,25 @@
function onTemperature(p) {
function drawTemperature() {
g.reset(1).clearRect(0,24,g.getWidth(),g.getHeight());
g.setFont("6x8",2).setFontAlign(0,0);
var x = g.getWidth()/2;
var y = g.getHeight()/2 + 10;
g.drawString("Temp", x, y - 45);
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);
}
function drawTemperature() {
onTemperature({
temperature : E.getTemperature()
});
}
const avg = [];
setInterval(function() {
drawTemperature();
}, 2000);
drawTemperature();
E.showMessage("Loading...");
Bangle.loadWidgets();
Bangle.drawWidgets();