在Node.js中使用serialport自动连接到特定设备
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Node.js中使用serialport自动连接到特定设备相关的知识,希望对你有一定的参考价值。
我对节点和异步编程很新(我来自C背景),我无法在Node.js中使用serialport自动连接到具有某个vendorID的设备的端口。我把一切都分开工作,即。我可以连接到一个端口,我可以找到一个具有某个vendorID的端口,但是我无法连接到我找到的端口。这是我到目前为止的代码:
var SerialPort = require('serialport');
var MYport;
SerialPort.list(function (err, ports) {
ports.forEach(function(port) {
if(port.vendorId == 9999){
console.log('Found It')
MYport = port.comName.toString();
console.log(MYport);
}
});
});
var port = new SerialPort(MYport, {
parser: SerialPort.parsers.readline('
')
});
当这个运行时,我得到一个错误,因为在创建和连接端口时没有定义MYport。
我知道我很可能不得不使用回调功能,但我无法弄明白。
谢谢您的帮助
答案
SerialPort.list是异步函数,
所以你需要在发出异步函数回调后将连接放到serialport。
像这样:
var SerialPort = require('serialport');
var MYport;
SerialPort.list(function (err, ports) {
ports.forEach(function(port) {
if(port.vendorId == 9999){
console.log('Found It')
MYport = port.comName.toString();
console.log(MYport);
}
});
var port = new SerialPort(MYport, {
parser: SerialPort.parsers.readline('
')
});
});
以上是关于在Node.js中使用serialport自动连接到特定设备的主要内容,如果未能解决你的问题,请参考以下文章
Node.js笔记:SerialPort(串口)模块使用(基于10.x.x)
数据流和Promise Node.js与serialport
Raspberry Pi,Arduino,Node.js和串口