javascript - Serialport npm 可用 COM 端口列表

标签 javascript node.js node-serialport

我的程序的一部分有问题,我想我知道问题是什么,但我找不到解决方法,因此需要您的帮助。

我认为问题不在于serialport.list函数,而更多在于我使用它的方式。

这是我的代码:

    var getPortsList= ()=>{
    var portsList = [];
    SerialPort.list((err, ports)=>{
      ports.forEach((ports)=>{
        portsList.push(ports.comName);
        //console.log(portsList);
      });
    });

    return portsList;

  };

所以我将列表函数包装在我自己的函数中,当我需要检查哪些端口可用时我会调用它。我遇到的问题是我总是返回一个空数组。如果我从 forEach 内部进行 console.log ,我肯定会得到 COM 端口名称,如果我在 forEach 循环之后从列表函数内部进行 console.log ,我会得到数组并且不为空。 我只能假设这是与 javascript 的一致性相关的一些问题,但我不太确定如何解决这个问题。 我可以看到这是一个会一直出现的重要概念,我想更好地理解它。 任何有关处理此类问题的方法或合适的链接的信息将不胜感激。 谢谢。 此致 路易斯

最佳答案

对于 Windows 10,serialPort 的列表方法会打印所有可用的 Com 端口及其信息。

const serialPort = require('serialport');

serialPort.list().then(function(ports){
  ports.forEach(function(port){
    console.log("Port: ", port);
  })
});

在终端上:

Port:  { comName: 'COM1',
  manufacturer: '(Standard port types)',
  serialNumber: undefined,
  pnpId: 'ACPI\\PNP0501\\0',
  locationId: undefined,
  vendorId: undefined,
  productId: undefined }
Port:  { comName: 'COM4',
  manufacturer: 'HHD Software Ltd.',
  serialNumber: undefined,
  pnpId: 'ROOT\\PORTS\\0000',
  locationId: undefined,
  vendorId: undefined,
  productId: undefined }
Port:  { comName: 'COM5',
  manufacturer: 'HHD Software Ltd.',
  serialNumber: undefined,
  pnpId: 'ROOT\\PORTS\\0001',
  locationId: undefined,
  vendorId: undefined,
  productId: undefined }

关于javascript - Serialport npm 可用 COM 端口列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49250638/

相关文章:

javascript - 如何排除 TypeScript 定义中声明的全局类型?

javascript - 使用 JS 检测 MacOS、iOS、Windows、Android 和 Linux 操作系统

javascript - 当循环内存在异步调用时如何保持代码同步

node.js - 由于 imagemin 问题,Grunt 构建失败,出了什么问题?

node.js - 使用 SSH 部署 mupx 期间出现未处理的错误(生成 ENOENT)

node.js - 使用 Node-XBee 和 Node-SerialPort 了解来自 XBee 的串行数据

javascript - 点击图片打开文件上传

node.js - 如何在树莓派上播放声音 - 启动后无需登录

javascript - 从串口获取返回变量

php - 自定义文件上传按钮