2

我正在使用 serialport@5.0.0 Node JS 库,并且之前使用过它(之前的版本,4.0.7)与 GSM 调制解调器成功通信。

现在我将它与 Arduino Uno 一起使用。但是,我似乎无法像以前使用 GSM 调制解调器那样从中读取数据。

这就是我想要做的:

this.parser.on('data', (buffer) => {
  console.log('in on data');
  data += buffer.toString();
  console.log("DATA: " + data);
  var parts = data.split('\r\n');
  console.log('PARTS:', parts);
  data = parts.pop();
  console.log(data)
  console.log('POPPED DATA: ' + data);
})

我从中一无所获。我什至尝试使用解析器,因此this.parser.on. 但是我无法让它工作。

我可以使用这个来获取数据:

this.parser.on('data', console.log);

但是由于我首先尝试处理数据,所以它没有用。

这是我的串口设置:

_.defaults(options, {
  baudrate: 9600,
  dataBits: 8,
  parity: 'none',
  stopBits: 1,
  flowControl: false,
  autoOpen: false,
});
this.options = options;
this.serial = new SerialPort(this.port, this.options);
this.eventEmitter = new events.EventEmitter();
this.parser = new Readline({ delimiter: '\n' });

我正在serialport从一个类中调用。是的,我打开了端口。

我也可以写信到端口。

4

1 回答 1

0

解决了它,显然我的示例代码的 on.data 部分中的“缓冲区”变量已经收到了一个字符串。因此,我可以将字符串打印为 console.log(buffer)。

奇怪的部分是为什么 data += buffer.toString() 部分表现得很奇怪。我希望我会在该行之后的第一个 console.log 中至少得到一些东西。但它返回空白。

于 2017-09-24T02:04:32.293 回答