使用nodejs每5个结果打印serialport的监听器

时间:2017-09-04 08:58:09

标签: node.js node-serialport

我有一台通过usb线连接到电脑的设备。 我可以通过SerialPort模块访问nodejs的数据。

我想在线获取数据,但我想为每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 个答案:

答案 0 :(得分:0)

我已经解决了这个问题, 我已从路由器中取出serialport个从属设备并让它永久运行并将数据推送到变量lastresult一旦访问路由器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;