无法使用串行端口 Node JS 库从 Arduino Uno 读取数据
Can't read data from Arduino Uno with serialport Node JS library
我正在使用 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' });
我正在从 class 调用 serialport
。是的,我打开了端口。
我也可以写端口
解决了,显然我的示例代码on.data部分的"buffer"变量已经收到了一个字符串。因此我可以将字符串打印为 console.log(buffer).
奇怪的部分是为什么 data += buffer.toString() 部分表现得很奇怪。我希望在那行之后的第一个 console.log 中至少能得到一些东西。但是它 returns 空白。
我正在使用 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' });
我正在从 class 调用 serialport
。是的,我打开了端口。
我也可以写端口
解决了,显然我的示例代码on.data部分的"buffer"变量已经收到了一个字符串。因此我可以将字符串打印为 console.log(buffer).
奇怪的部分是为什么 data += buffer.toString() 部分表现得很奇怪。我希望在那行之后的第一个 console.log 中至少能得到一些东西。但是它 returns 空白。