cockpit-temperature-plugin/temperature.js

43 lines
1.6 KiB
JavaScript
Raw Normal View History

2019-08-15 15:33:37 +02:00
window.onload = function () {
resize_canvas()
2019-08-15 16:21:03 +02:00
var chart = new SmoothieChart({millisPerPixel: 200, maxValueScale: 1.1, minValueScale: 1.1, scaleSmoothing: 0.1, grid: { fillStyle: '#ffffff', millisPerLine: 5000, verticalSections: 8 }, labels: { fillStyle: '#0000ff', fontSize: 18, precision: 1 }, timestampFormatter: SmoothieChart.timeFormatter }),
2019-08-15 15:33:37 +02:00
canvas = document.getElementById('smoothie-chart'),
series = new TimeSeries();
average_array = []
chart.addTimeSeries(series, { lineWidth: 3.5, strokeStyle: '#ff0000' });
chart.streamTo(canvas, 500);
function run_proc(series,average_array) {
var proc = cockpit.spawn(["vcgencmd","measure_temp"]);
proc.done(function(data){
pt = parseFloat(data.match(/([0-9\.]+)/)[1]);
series.append(new Date().getTime(), pt);
document.getElementById("cur_temp").innerHTML = pt;
average_array.push(pt);
if(average_array.length > 5*60){
average_array.shift();
}
document.getElementById("avg_temp").innerHTML = average(average_array);
console.log(average_array);
});
};
//run_proc(series)
setInterval(function () { run_proc(series,average_array) }, 1000);
}
function resize_canvas() {
document.getElementById("smoothie-chart").width = window.innerWidth - 50;
}
function average(array) {
var sum = 0;
var count = array.length;
for (var i = 0; i < count; i++) {
sum = sum + array[i];
}
return sum / count;
2019-08-15 16:21:03 +02:00
}