Skip to content

Instantly share code, notes, and snippets.

@rwaldron
Created July 17, 2016 15:44
Show Gist options
  • Select an option

  • Save rwaldron/db5c9e035d3a12c25a322905676f8d04 to your computer and use it in GitHub Desktop.

Select an option

Save rwaldron/db5c9e035d3a12c25a322905676f8d04 to your computer and use it in GitHub Desktop.
Replacement browser code for Experiment 10
window.onload = function() {
var socket = io();
var monitor = {};
monitor.thermometer = new JustGage({
id: "thermometer",
value: 0,
min: 0,
max: 100,
title: "Thermometer",
label: "° Celsius",
relativeGaugeSize: true,
});
monitor.barometer = new JustGage({
id: "barometer",
value: 0,
min: 50,
max: 150,
title: "Barometer",
label: "Pressure/kPa",
relativeGaugeSize: true,
});
monitor.altimeter = new JustGage({
id: "altimeter",
value: 0,
min: 0,
max: 100,
title: "Altimeter",
label: "Meters",
relativeGaugeSize: true,
});
monitor.hygrometer = new JustGage({
id: "hygrometer",
value: 0,
min: 0,
max: 100,
title: "Hygrometer",
label: "Humidity %",
relativeGaugeSize: true,
});
var displays = Object.keys(monitor);
var updated = Date.now() - 5000;
socket.on("report", data => {
var now = Date.now();
/*
This arbitrary 5 second update throttling prevents
JustGage from spiking your CPU.
If someone wants to write a performant replacement... <3
*/
if (now - updated >= 5000) {
updated = now;
displays.forEach(display => {
monitor[display].refresh(data[display]);
});
}
});
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment