get temperature by spawn "sensors|grep °C"

This commit is contained in:
Bob Wen 2021-03-08 13:18:42 +08:00 committed by GitHub
parent 08fe311938
commit 45df8475d0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 11 additions and 16 deletions

View File

@ -1,31 +1,26 @@
window.onload = function () { window.onload = function () {
resize_canvas() resize_canvas();
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 }),
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 }),
canvas = document.getElementById('smoothie-chart'), canvas = document.getElementById('smoothie-chart'),
series = new TimeSeries(); series = new TimeSeries();
average_array = [] average_array = []
chart.addTimeSeries(series, { lineWidth: 3.5, strokeStyle: '#ff0000' }); chart.addTimeSeries(series, { lineWidth: 3.5, strokeStyle: '#ff0000' });
chart.streamTo(canvas, 500); chart.streamTo(canvas, 500);
function run_proc(series,average_array) { function run_proc(series, average_array) {
var proc = cockpit.spawn(["vcgencmd","measure_temp"]); cockpit.spawn(['sh', '-c', 'sensors|grep °C']).then(function (data) {
proc.done(function(data){ pt = parseFloat(("" + data).trim().split(/[\r\n]+/)[0].split(/:\s*/)[1].trim());
pt = parseFloat(data.match(/([0-9\.]+)/)[1]);
series.append(new Date().getTime(), pt); series.append(new Date().getTime(), pt);
document.getElementById("cur_temp").innerHTML = pt; document.getElementById("cur_temp").innerHTML = pt;
average_array.push(pt); average_array.push(pt);
if(average_array.length > 5*60){ if (average_array.length > 5 * 60) {
average_array.shift(); average_array.shift();
} }
document.getElementById("avg_temp").innerHTML = average(average_array); document.getElementById("avg_temp").innerHTML = average(average_array);
console.log(average_array);
}); });
}; };
setInterval(function () { run_proc(series, average_array) }, 2000);
//run_proc(series)
setInterval(function () { run_proc(series,average_array) }, 1000);
} }
function resize_canvas() { function resize_canvas() {
@ -36,7 +31,7 @@ function average(array) {
var sum = 0; var sum = 0;
var count = array.length; var count = array.length;
for (var i = 0; i < count; i++) { for (var i = 0; i < count; i++) {
sum = sum + array[i]; sum = sum + array[i];
} }
return sum / count; return Math.round(sum * 10 / count) / 10;
} }