0

我正在尝试使用 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

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

4

1 回答 1

0

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

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
})    
于 2017-11-06T13:08:29.567 回答