Задать вопрос
@DronTat

Как в node-serialport переинициализировать после ошибки доступа к COM порту?

Приложение работает как веб сервер. При обращении по адресу веб сервера, отправляется команда на com порт и данные в ответе передаются клиенту. Но при обрыве связи с оборудованием/отключении оборудования приложение, после некоторого таймаута пишет ошибку. Но вот при повторном обращении, после восстановлении связи, оборудование так же продолжает писать ошибку связи. Как сделать переинициализацию, что бы он заново обращался в com порт?
Сама программа

const express = require('express');
const app = express();
const SerialPort = require('serialport');

app.get('/', (req, res) => {
    let comPort = req.query.comPort
    const port = new SerialPort('COM' + comPort, {
        baudRate: 2400,
        dataBits: 7,
        parity: 'even'
    });
    const Readline = SerialPort.parsers.Readline;
    const parser = new Readline();
    port.pipe(parser);

    port.on('open', () => {
        port.write("Q\r\n", (err) => {
            if (err) {
                return console.log('Error on write: ', err.message);
            }
        })

        parser.on('data', (data) => {
            console.log('data: ' + data)
            port.close()
        })
    });

// open errors will be emitted as an error event
    port.on('error', (err) => {
        console.log('Error: ', err.message);
        res.status(500).send('Error: ' + err.message)
    });

    port.on('close', () => {
        console.log('closed');
        res.json(user_data)
    });
});
app.listen(3000, () => {
    console.log('Example app listening on port 3000!');
});

  • Вопрос задан
  • 26 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы