Add support for DIN

This commit is contained in:
2017-10-28 03:09:06 +00:00
parent 45d88f1ddc
commit df5521d323
2 changed files with 64 additions and 24 deletions
+25 -10
View File
@@ -1,8 +1,17 @@
const express = require('express')
const app = express()
const express = require('express');
const app = express();
const DOUT_LUT = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'];
const server = app.listen(3000, function () {
console.log('Example app listening on port 3000!');
})
const io = require('socket.io').listen(server);
var ioState = {
dout: [false],
dout: [false, false, false, false],
din: [false, false, false, false]
}
const updateState = data => {
@@ -14,15 +23,21 @@ const updateState = data => {
app.use('/', express.static('dist'))
app.get('/api/dout/:pin', function (req, res) {
res.send(ioState.dout[req.params.pin])
})
app.get('/api/dio/:data', function (req, res) {
const doutNum = ioState.dout.reduce((total, x, i) => x ? total + Math.pow(2, i) : total, 0);
const doutChar = DOUT_LUT[doutNum];
res.send(doutChar);
const server = app.listen(3000, function () {
console.log('Example app listening on port 3000!')
})
const dinChar = req.params.data || '0';
const dinArray = parseInt(dinChar, 16).toString(2).split('').reverse();
const din = new Array(4).fill(false).map((x, i) => dinArray[i] != '1').reverse();
const io = require('socket.io').listen(server);
if (ioState.din.toString() != din.toString()) {
ioState.din = din;
io.emit('ioState', ioState);
console.log(din);
}
})
io.on('connection', socket => {
socket.emit('ioState', ioState);