微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

每秒从serialport.io读取数据

如何解决每秒从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 举报,一经查实,本站将立刻删除。