|
|
|
var http = require('http');
|
|
|
|
var fs = require('fs');
|
|
|
|
var express = require('express');
|
|
|
|
var app = express();
|
|
|
|
var path = require('path');
|
|
|
|
var server = http.createServer(app);
|
|
|
|
var port = 8000;
|
|
|
|
|
|
|
|
const { SerialPort } = require('serialport')
|
|
|
|
const { ReadlineParser } = require('@serialport/parser-readline')
|
|
|
|
const sport = new SerialPort({ path: '/dev/ttyACM0', baudRate: 115200 })
|
|
|
|
|
|
|
|
const parser = sport.pipe(new ReadlineParser({ delimiter: '\r\n' }))
|
|
|
|
parser.on('data', console.log)
|
|
|
|
|
|
|
|
server.listen(port, () => {
|
|
|
|
console.log("Server is listening at port %d", port);
|
|
|
|
});
|
|
|
|
|
|
|
|
app.use(express.static(path.join(__dirname, "public")));
|
|
|
|
io.emit("blink");
|
|
|
|
|
|
|
|
var io = require('socket.io')(server);
|
|
|
|
|
|
|
|
//here we are listening to the data coming in from the modules, it's called node-data in the html
|
|
|
|
io.on('connection', function(socket){
|
|
|
|
console.log("A client connected!");
|
|
|
|
|
|
|
|
|
|
|
|
parser.on('data', function(data) {
|
|
|
|
const msg = data.split(' ');
|
|
|
|
console.log(msg[0], msg[1]);
|
|
|
|
io.emit('node-data', data);
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
socket.on("message", (message) => {
|
|
|
|
console.log("Received message:", message);
|
|
|
|
if (message === "blink") {
|
|
|
|
io.emit("blink"); // Trigger the blink event to all connected clients
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
socket.on('chat message', (msg) => {
|
|
|
|
console.log('[user]['+ socket.id + '][' + msg + ']');
|
|
|
|
});
|
|
|
|
|
|
|
|
socket.on('userposition', (msg) => {
|
|
|
|
console.log('[user]['+ socket.id + '][position: ' + msg[0] + ',' + msg[1]+ ']');
|
|
|
|
socket.to('expo').emit(socket.id, msg);
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
});
|