【问题标题】:node.js serialport read data - parsing issuesnode.js 串口读取数据 - 解析问题
【发布时间】:2018-04-18 02:27:22
【问题描述】:

我正在尝试使用 Node.js 的 serialport 模块解析来自串行端口的信息。 我正在尝试解析这个示例数据包,使用 0a 作为分隔符:

133733100a6E0686173650aFE0aEF100a52A48BAA5126EAABA66B45E94994

这是我正在使用的代码:

const SerialPort = require('serialport');

var portName = 'COM8';
const Readline = SerialPort.parsers.Readline;

const port = new SerialPort(portName, {
    baudRate: 9600,
    dataBits: 8,
    parity: 'none',
    stopBits: 1,
    flowControl: false
});

const parser = port.pipe(new Readline({ delimiter: '0a' }));

parser.on('data', function(data) {
    var bits = data;
    console.log(bits);
});

当我运行它时,我得到了输出:

13373310
6E068617365
FE
EF10
52A48BAA5126EAABA66B45E94994

然后我想将这些行中的每一行存储在一个单独的数组中以供以后使用。但是,如果我尝试以数组的形式访问位,我会得到第一列数据,而不是第一行,如下所示:

console.log(bits);

变成

console.log(bits[0]);

输出:

1
6
F
E
5

如何以行而不是列的形式访问数据?

【问题讨论】:

    标签: javascript node.js parsing node-serialport


    【解决方案1】:

    定义一个额外的数组变量来存储你的值

    let bitsArray = []
    parser.on('data', function(data) {
      var bits = data;
      // add code here
      bitsArray.push(bits)
      console.log(bits);
    });
    // now your code has all the bits in the bitsArray
    
    bitsArray.forEach((bit) => {
        console.log(bit) // here is your full bit
    })    
    

    【讨论】:

      猜你喜欢
      • 2014-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多