0

我有一台通过 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);- 这个监听器每次都不断发送数据

4

1 回答 1

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;
于 2017-09-04T11:36:57.430 回答