为什么 Arduino Micro(USB 设备)的供应商 ID 和产品 ID 在 Linux 和 Windows 中有所不同?



我正在开发一种软件,该软件使用Qt与Arduino Micro进行通信C++。

我正在使用QSerialPortInfo通过此方法显示我的Arduino Micro的一些信息:

for (QSerialPortInfo info : QSerialPortInfo::availablePorts())
{
   qDebug() << "Port Name   :" << info.portName();
   qDebug() << "Description :" << info.description();
   qDebug() << "Manufacturer:" << info.manufacturer();
   qDebug() << "Vendor ID   :" << info.vendorIdentifier();
   qDebug() << "Product ID  :" << info.productIdentifier();
}

在 Windows 10 中,结果如下:

端口名称 : "COM4" 描述 : "Arduino Micro" 制造商: "Arduino LLC (www.arduino.cc)" 供应商编号 : 9025 产品编号 : 32823

在 Ubuntu 15 中:

端口名称 : "ttyACM0" 描述 : "Arduino Micro" 制造商: "Arduino LLC" 供应商 ID : 5549 产品编号 : 1908

为什么供应商和制造商是不同的?我认为 ID 是关于设备的,所以必须仍然相同,独立于平台......我错了?

如果我想检查设备是否是我的设备,我该怎么做?我想使用供应商和产品 ID 进行简单的检查

更新:

忘了告诉我正在Windows10和VMWare上使用带有虚拟机的Ubuntu(如果它可以改变某些东西)

您的虚拟机具有虚拟串行端口,并且虚拟串行端口具有虚拟供应商 ID。 5549 是十六进制 15AD,即 VMWare,Inc。

最新更新