35 lines
1.0 KiB
JavaScript
35 lines
1.0 KiB
JavaScript
|
const SerialPort = require('serialport');
|
||
|
const Readline = require('@serialport/parser-readline');
|
||
|
|
||
|
var express = require('express'),
|
||
|
app = express(),
|
||
|
http = require('http'),
|
||
|
server = http.createServer(app),
|
||
|
io = require('socket.io').listen(server),
|
||
|
scores = {};
|
||
|
|
||
|
// listen for new web clients:
|
||
|
server.listen(8080);
|
||
|
|
||
|
// open the serial port. Change the name to the name of your port, just like in Processing and Arduino:
|
||
|
const port = new SerialPort("/dev/ttyUSB0", { baudRate: 9600 });
|
||
|
|
||
|
const parser = new Readline({ delimiter: '\r' });
|
||
|
port.pipe(parser)
|
||
|
|
||
|
// respond to web GET requests with the index.html page:
|
||
|
app.get('/', function (req, res) {
|
||
|
res.sendFile(__dirname + '/index.html');
|
||
|
});
|
||
|
|
||
|
// listen for new serial data:
|
||
|
parser.on('data', line => console.log(`> ${line}`))
|
||
|
|
||
|
// listen for new socket.io connections:
|
||
|
io.on('connection', function (socket) {
|
||
|
parser.on('data', line => socket.emit('data', line))
|
||
|
socket.on('message', function (data) {
|
||
|
console.log(data)
|
||
|
port.write(data+'\r')
|
||
|
});
|
||
|
});
|