#include <QCameraInfo>foreach (const QCameraInfo& cameraInfo, cameras)
{QString device_name = cameraInfo.deviceName();qDebug() << "Device Name: " << device_name;qDebug() << "Description: " << cameraInfo.description();//@device:pnp:\\\\?\\usb#vid_174f&pid_2435&mi_00#6&3051f76e&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\\global//@device:pnp:\\\\?\\usb#vid_0c45&pid_ae11&mi_00#6&2d77a22d&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\\global//提取vid号QRegularExpression vidRegex("vid_([0-9a-fA-F]+)", QRegularExpression::CaseInsensitiveOption);QRegularExpressionMatch vidMatch = vidRegex.match(device_name);QString vid = vidMatch.captured(1);//提取pid号QRegularExpression pidRegex("pid_([0-9a-fA-F]+)", QRegularExpression::CaseInsensitiveOption);QRegularExpressionMatch pidMatch = pidRegex.match(device_name);QString pid = pidMatch.captured(1);qDebug() << "VID: " << vid ;qDebug() << " PID: " << pid;}
Device Name: "@device:pnp:\\\\?\\usb#vid_0c45&pid_ae11&mi_00#7&2d2b7bc9&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\\global"
Description: "LRCP imx291"
VID: "0c45"
PID: "ae11"
- 含义
- @device:pnp::这是一个设备标识前缀,指示该字符串是一个设备标识符。
- \\?\usb:这是Windows操作系统中的设备路径前缀,表示该设备是USB设备。
- #vid_0c45&pid_ae11&mi_00:这是USB设备的唯一标识符部分。其中:
- vid_0c45:表示设备的Vendor ID(厂商标识符),这里的VID为0c45。
- pid_ae11:表示设备的Product ID(产品标识符),这里的PID为ae11。
- mi_00:表示设备的Interface Number(接口编号),这里的接口编号为00。
- #7&2d2b7bc9&0&0000#:这是设备实例的唯一标识符部分,用于区分具有相同VID和PID的多个设备。这里的具体值为7&2d2b7bc9&0&0000。
- #{65e8773d-8f56-11d0-a3b9-00a0c9223196}:这是设备类别的唯一标识符部分,用于指示设备的类别。这里的标识符指示设备为视频设备(Video Device Class)。
- \global:这是设备路径的后缀,用于指示设备的全局可访问路径。