无法使用serialport Node JS库从Arduino Uno读取数据

时间:2017-09-04 09:45:10

标签: node.js arduino serial-port arduino-uno node-serialport

我正在使用serialport@5.0.0节点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。是的,我让端口打开。

我也可以写信到端口。

1 个答案:

答案 0 :(得分:0)

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

奇怪的部分是数据+ = buffer.toString()部分表现奇怪的原因。我希望在那行之后我会在第一个console.log中获得至少一些东西。但它返回空白。