我有一台通过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);
- 此侦听器每次都会继续发送数据
答案 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;