diff --git a/index.html b/index.html index cfd318d..6c9b64d 100644 --- a/index.html +++ b/index.html @@ -3,13 +3,45 @@ +
+
+ + +
\ No newline at end of file diff --git a/serial.js b/serial.js index e96b6af..7baa84f 100644 --- a/serial.js +++ b/serial.js @@ -1,12 +1,12 @@ 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 = {}; +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); @@ -14,7 +14,7 @@ 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' }); +const parser = new Readline({ delimiter: '\r\n' }); port.pipe(parser) // respond to web GET requests with the index.html page: @@ -27,9 +27,18 @@ 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)) + // get data from serial and send it to socket + parser.on('data', line => { + socket.emit('data', line) + }); + // get data from socket and send it to serial + socket.on('data', function (data) { + console.log('data', socket.conn.remoteAddress, data) + port.write(data+"\r") // we need to end each command with a CR + }); + // send and log connect messages + socket.volatile.emit('message', "hi "+socket.conn.remoteAddress); socket.on('message', function (data) { - console.log(data) - port.write(data+'\r') + console.log('message',socket.conn.remoteAddress,data) }); }); \ No newline at end of file