You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

88 lines
2.1 KiB
JavaScript

var http = require('http');
var fs = require('fs');
var express = require('express');
var app = express();
var path = require('path');
// var index = fs.readFileSync('index.html');
// hi
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 five = require('johnny-five');
const board = new five.Board();
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")));
board.on('ready', function() {
const led = new five.Led(13); // Assuming LED connected to GPIO 13 (D13)
// Emit 'blink' event to clients when the LED turns on
led.on('on', function() {
io.emit('blink');
});
// Emit 'stop' event to clients when the LED turns off
led.on('off', function() {
io.emit('stop');
});
// Function to blink the LED
function blinkLed() {
led.blink(500); // Blink every 500 milliseconds
}
// Start blinking the LED
blinkLed();
});
// var server = http.createServer(function(req, res){
// res.writeHead(200, {'Content-Type':'text/html'});
// res.end(index);
// });
var io = require('socket.io')(server);
io.on('connection', function(socket){
parser.on('data', function(data) {
const msg = data.split(' ');
console.log(msg[0], msg[1]);
io.emit('node-data', data);
});
console.log('Node.js is listening!!');
socket.on("hello", (arg, callback) => {
console.log("hellohelo"); // "world"
io.emit('blink');
});
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);
});
});
// app.listen(5501);