-
Notifications
You must be signed in to change notification settings - Fork 0
/
server.js
37 lines (30 loc) · 1.03 KB
/
server.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
var express = require('express');
var serialport = require('serialport');
var io = require('socket.io');
var chartdata = [];
var target = 0;
var app = express();
var port = new serialport.SerialPort("/dev/ttyACM0", { baudrate: 115200, parser: serialport.parsers.readline("\n") });
app.use(express.static(__dirname + '/app'));
app.use(function(req, res) {
res.sendFile(__dirname + "/app/index.html");
});
var webserver = app.listen(process.env.PORT || 80);
var socket = io(webserver);
socket.on("connection", function(websocket) {
websocket.emit('history', chartdata);
websocket.on("target", function(data) {
target = data;
});
});
port.on("data", function(data) {
var temp_str = data.split(",");
var temp = 0;
temp_str.forEach(function(entry) {
temp += +entry;
});
temp /= temp_str.length;
var variance = Math.abs(Math.max.apply(Math, temp_str) - Math.min.apply(Math, temp_str));
chartdata.push({i: chartdata.length, current: temp, target: target, variance: variance});
socket.emit('temperature', chartdata[chartdata.length-1]);
});