SerialPort“closures”事件永远不会起火

我正在使用nodeJS的SerialPort软件包连接到计算机端口。

关于Package的close事件在这里 。

我已经创build了这个代码,我想知道为什么close / disconnect事件不会触发当我断开COM

 const express = require('express'); const router = express.Router(); // const cors = require('cors'); router.use(cors()); // const SerialPort = require('serialport'); const Readline = SerialPort.parsers.Readline; const port = new SerialPort('COM7',function (err) { if (err) { return console.log('Error: ', err.message); } }); const parser = port.pipe(new Readline()); /* var lastresult = ''; var count = 0; */ port.on('open', function() { console.log('~Port is open.'); parser.on('data', console.log); }); port.on('disconnect', function () { console.log('disconnected'); }); port.on('close', function () { console.log('closed'); }); router.get('/', function (req, res) { res.send('index'); }); module.exports = router; 

我试图想,如果我使用它是错误的,因为我没有看到使用这个事件的例子。

谢谢您的帮助 :)

每次我从COM接收数据时都创build了时间戳,并且每次都用interval()检查它。

 setInterval(function () { if (Date.now() - lastDataTime > 1000 || !comStatus) { comStatus = false; port.close(); port = new SerialPort(comPort, function (err) { if (err) { error = 'Error: ' + err.message; return console.log(error); } }); } }, 1000);