在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)

Node.js 串口通讯 node-serialport

数据流和Promise Node.js与serialport

Raspberry Pi,Arduino,Node.js和串口

在node.js和serial.js上使用AT +命令发送文本消息

使用 javascript 运行本地服务器