Печатать слушатель 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;