如何解决每秒从serialport.io读取数据
我有一个激光雷达,可以通过串行接收数据。但是我收到的数据量过多,以至于大大增加了cpu的负载和温度。
我曾想过每秒循环读取一次串行端口,但是好像程序不再从sport.on(“数据”)功能退出。 另一方面,如果我关闭序列号,则无法重新打开它。 然后,我将不得不通过socket.io传输数据,这足以使我每秒或每500毫秒读取一次数据。
var portName = '/dev/ttyS0';
var sport = new SerialPort(portName,{
baudrate: 115200,dataBits: 8,parity: 'none',stopBits: 1,autoOpen: false
});
let read_height = setInterval(function(){ real_height() },1000);
function real_height() {
sport.open(function (err) {
if (err) {
return console.log('Error opening port: ',err.message)
}
console.log('i\'m here');
sport.on('data',function(data) {
var buff = new Buffer.from(data);
hexx = buff[2] + (buff[3] << 8);
if (hexx) {
sport.close(function (err) {
console.log('port closed',err);
});
}
console.log("hexx = " + hexx);
});
});
};
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。