无法使用serialport Node JS库从Arduino Uno读取数据
问题描述:
我正在使用[email protected] Node JS库,并且之前使用它(先前版本,4.0.7)与GSM调制解调器。无法使用serialport Node JS库从Arduino Uno读取数据
现在我使用它与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);
但因为我试图处理摆在首位的数据,也没用。
这里是我的SerialPort设置:
_.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
从类。是的,我打开端口。
我也可以写入端口。
答
解决了它,显然我的示例代码的on.data部分中的“缓冲区”变量已经收到一个字符串。因此,我可以将该字符串打印为console.log(buffer)。
奇怪的部分是为什么data + = buffer.toString()部分行为怪异。我希望在那行后的第一个console.log中至少有一些东西。但它返回空白。
您是否可以使用内置于Arduino IDE中的“串口监视器”与串口/ Arduino代码进行通信? – payne
关于Arduino串行监视器我可以完美地通信。实际上所有的分隔符。也可以通过this.parser.on('data',console.log)获取数据; –