我正在尝试使用SerialPort从Arduino向NodeJS发送消息。这是我的NodeJS代码:
var SerialPort = require('serialport');
var port = new SerialPort('/dev/tty.usbmodem1421',{
baudRate: 9600
});
port.on('data',(data) => {
console.log(data);
});
这是我的Arduino代码:
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println("Message");
delay( 1000 );
}
它正在运作。但是,我收到的消息如下所示:
<Buffer 4d 65 73>
<Buffer 73 61 67 65>
<Buffer 0d 0a>
我尝试了很多不同的东西来尝试正确阅读信息。如果它有所作为,我最终会希望我的消息是JSON。以下是我尝试过的一些事情:
我添加了这个:
parser: SerialPort.parsers.readline('\r\n')
我认为可能会过时,因为我readline
不是函数错误消息。
我尝试过使用Readline对象:
var parser = new Readline();
parser.on('data', function(data){console.log( data );});
非常感谢任何帮助!
答案 0 :(得分:1)
结束我正在查看错误的文档。我使用的SerialPort版本是6.x,大多数帮助都是针对更旧的版本。解决方案是GitHub最近的例子:
const SerialPort = require('serialport');
const parsers = SerialPort.parsers;
const parser = new parsers.Readline({
delimiter: '\r\n'
});
const port = new SerialPort('/dev/tty-usbserial1', {
baudRate: 9600
});
port.pipe(parser);
parser.on('data', console.log);
解析过程发生了巨大变化。
https://github.com/node-serialport/node-serialport/blob/master/examples/readline.js