繁体   English   中英

通过Node.js中的串行端口自动连接到特定设备

[英]Auto-connecting to specific device with serialport in Node.js

我对节点和异步编程非常陌生(我来自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('\n')
});

运行该命令时,由于在创建和连接端口时未定义MYport,因此会出现错误。

我知道我很可能必须使用回叫功能,但我无法弄清楚。

谢谢您的帮助

SerialPort.list是异步函数,

因此,您需要在发出异步函数的回调后将与串行端口的连接。

像这样:

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('\n')
  });

});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM