使用NodeJS从串行端口获取体重秤数据



我是nodejs的新手,我想从串口获取权重数据,我已经安装了nodejs(v14.19.0(和npm(6.14.16(,我想使用localhost:8080/get_weight获取权重数据。但脚本不起作用,有人能帮我吗?

这是我的代码:

const http = require('http');
const hostname = 'localhost';
const { SerialPort, ReadlineParser } = require('serialport')
const { io } = require('socket.io')(3000);
const serialport = new SerialPort({ 
path: '/dev/ttyS4',
baudRate: 7500000 ,
})
const parser = new ReadlineParser()
serialport.pipe(parser)
/*serialport.on('data', console.log)  */
let express = require('express')
let app = express();
var port = 8080;
const server = http.createServer(app);
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
app.get('/get_weight', function(req, res) {
serialport.on('open',function(){
serialport.on('data', function(data){
console.log('DATA:::::', data)
const buf2 = Buffer.from(data)
let wArray = buf2.toString('utf8');
let wSlice = wArray.slice(3, wArray.length);
let rawWeight = wSlice.slice(0, -3);
let fWeight = rawWeight.trim();
let weight = parseInt(fWeight);
console.log(weight);
});
});
});

您的脚本只处理从天平读取数据。但是,您还应该向串行端口写入一个命令,然后才能等待并接收数据。请阅读该设备的用户手册,它应该有一个用于与之通信的接口。

最新更新