我正在开发一种软件,该软件使用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。