diff --git a/package.json b/package.json index d332be6..ba964d5 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "node-hid": "2.1.1", "node-static": "*", "request": "*", - "serialport": "9.x", + "serialport": "^12.0.0", "socket.io": "4.x", "ws": "8.x" }, diff --git a/server.js b/server.js index 4e9cfc4..1b3578c 100644 --- a/server.js +++ b/server.js @@ -26,9 +26,8 @@ */ const config = require('./config'); -const serialport = require('serialport'); -var SerialPort = serialport; -const Readline = SerialPort.parsers.Readline; +const { SerialPort } = require('serialport'); +const { ReadlineParser } = require('@serialport/parser-readline'); const websockets = require('socket.io'); const http = require('http'); const WebSocket = require('ws'); @@ -224,7 +223,7 @@ io.sockets.on('connection', function (appSocket) { appSocket.emit('interfaces', supportedInterfaces); // check available ports - serialport.list().then(ports => { + SerialPort.list().then(ports => { portsList = ports; let portPaths= new Array(); for (var i = 0; i < ports.length; i++) { @@ -236,7 +235,7 @@ io.sockets.on('connection', function (appSocket) { // reckeck ports every 2s if (!listPortsLoop) { listPortsLoop = setInterval(function () { - serialport.list().then(ports => { + SerialPort.list().then(ports => { if (JSON.stringify(ports) != JSON.stringify(portsList)) { portsList = ports; io.sockets.emit('ports', portsList); @@ -278,7 +277,7 @@ io.sockets.on('connection', function (appSocket) { writeLog(chalk.yellow('INFO: ') + chalk.blue('FirstLoad called'), 1); appSocket.emit('serverConfig', config); appSocket.emit('interfaces', supportedInterfaces); - serialport.list().then(ports => { + SerialPort.list().then(ports => { appSocket.emit('ports', ports); }); if (isConnected) { @@ -318,7 +317,7 @@ io.sockets.on('connection', function (appSocket) { appSocket.on('getPorts', function () { // Refresh serial port list writeLog(chalk.yellow('INFO: ') + chalk.blue('Requesting Ports list '), 1); - serialport.list().then(ports => { + SerialPort.list().then(ports => { appSocket.emit('ports', ports); }); }); @@ -382,10 +381,11 @@ io.sockets.on('connection', function (appSocket) { firmware = false; switch (connectionType) { case 'usb': - port = new SerialPort(data[1], { + port = new SerialPort({ + path: data[1], baudRate: parseInt(data[2].replace('baud','')) }); - const parser = port.pipe(new Readline({ delimiter: '\n' })) + const parser = port.pipe(new ReadlineParser({ delimiter: '\n' })) // parser.on('data', console.log) // uncomment to dump raw data from the connected port io.sockets.emit('connectStatus', 'opening:' + port.path);