最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

在Node.js中使用serialport自动连接到特定设备

IT培训 admin 6浏览 0评论

在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 = portName.toString();
      console.log(MYport);
    }
  });
});

var port = new SerialPort(MYport, {
  parser: SerialPort.parsers.readline('\n')
});

当这个运行时,我得到一个错误,因为在创建和连接端口时没有定义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 = portName.toString();
      console.log(MYport);
    }
  });

  var port = new SerialPort(MYport, {
    parser: SerialPort.parsers.readline('\n')
  });

});

在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 = portName.toString();
      console.log(MYport);
    }
  });
});

var port = new SerialPort(MYport, {
  parser: SerialPort.parsers.readline('\n')
});

当这个运行时,我得到一个错误,因为在创建和连接端口时没有定义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 = portName.toString();
      console.log(MYport);
    }
  });

  var port = new SerialPort(MYport, {
    parser: SerialPort.parsers.readline('\n')
  });

});
发布评论

评论列表 (0)

  1. 暂无评论