问题描述
我有一个激光雷达,可以通过串行接收数据。但是我收到的数据量过多,以至于大大增加了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 (将#修改为@)