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

标签 c++ windows qt ubuntu arduino

我正在开发一个使用 Qt for C++ 与 Arduino Micro 通信的软件。

我正在使用 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 中,结果如下:

Port Name : "COM4" Description : "Arduino Micro" Manufacturer: "Arduino LLC (www.arduino.cc)" Vendor ID : 9025 Product ID : 32823

在 Ubuntu 15 中:

Port Name : "ttyACM0" Description : "Arduino Micro" Manufacturer: "Arduino LLC" Vendor ID : 5549 Product ID : 1908

为什么供应商和制造商不同?我认为 ID 与设备有关,因此必须仍然相同,与平台无关。我错了吗?

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

更新:

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

最佳答案

你的虚拟机有一个虚拟串口,虚拟串口有一个虚拟供应商ID。 5549 是十六进制的 15AD,也就是 VMWare,Inc.

关于c++ - 为什么 Arduino Micro(USB 设备)的供应商 ID 和产品 ID 在 Linux 和 Windows 中不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35554512/

相关文章:

C++ 为什么我的编译器成功了,但我的计算机给出了调试错误?

c++ - 有没有类似于UWP windows.protocol的桌面机制?

c++ - QWebSocket Hello World示例

c++ - 在 QLabel 比例尺内制作数据以适应它的高度

qt - 媒体播放器/录音机(声子)

c++ - 如何在另一个类的方法中使用一个类的实例?

c++ - 如何在 Visual Studio 中查找语法错误的文件?

c++ - 将 boost 与 numerical recipes 3 代码集成

c++ - 扫描 FAT32 磁盘中文件的最快方法是什么?

c++ - 电源故障后 Windows 操作系统中的文件损坏