Печатать слушатель serialport каждые 5 результатов с помощью nodejs

У меня есть устройство, которое подключено к компьютеру через USB-кабель. У меня есть доступ к данным с помощью nodejs через SerialPort модуль.

Я хочу получить данные онлайн, но я хочу брать данные каждый для каждых 5 экземпляров. вот код и GIT: https://github.com/eshk12/SerialPort-HTTP-Server/blob/master/routes/index.js

при первом запуске он печатает 5-й экземпляр и сбрасывает переменную count но не переходит снова к 5-му:

Вот консоль:

serialport>npm run start

> serialport-test@0.0.0 start D:/serialport
> node ./bin/www

init start
1else
2else
3else
4else
5main
GET /hey 200 652.150 ms - 12
1else
2else
3else
4else

parser.on('data', render); - этот слушатель продолжает посылать данные каждый раз

1 ответ

Я исправил проблему, я вынул serialport зависимости от маршрутизатора, и пусть он работает постоянно и помещает данные в переменную lastresult однажды some1 доступ к роутеру localhost:3000/hey он распечатает результаты.

var express = require('express');
var router = express.Router();
var cors = require('cors');
var SerialPort = require('serialport');
router.use(cors());

console.log('init start');
const Readline = SerialPort.parsers.Readline;
const port = new SerialPort('COM7');
const parser = new Readline();
port.pipe(parser);
var count = 0;
var lastresult = '';
function counter(data){
  if(++count == 5){
    lastresult = data;
    count = 0;
  }
}
parser.on('data', counter);
router.get('/hey', function (req, res) {
  res.send(lastresult);
});
module.exports = router;
Другие вопросы по тегам