L’événement ‘close’ de SerialPort ne se déclenche jamais

J’utilise le package SerialPort de SerialPort pour SerialPort connecter aux ports de l’ordinateur.

À propos de l’événement close de Package ici .

J’ai créé ce code, j’aimerais savoir pourquoi l’événement de close / disconnect ne se déclenche jamais lorsque je déconnecte le 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; 

J’essaie de penser si je l’utilise mal parce que je n’ai pas vu d’exemple pour utiliser cet événement.

Merci pour l’aide 🙂

    J’ai créé un horodatage à chaque fois que je reçois des données du COM , et le vérifie avec interval() chaque fois.

     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);