• QT获取USB相机具体属性信息


    • 代码获取
    #include 
    
    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;
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 输出
    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"
    
    • 1
    • 2
    • 3
    • 4
    • 含义
      • @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:这是设备路径的后缀,用于指示设备的全局可访问路径。
  • 相关阅读:
    uniapp-vue3 项目初始化集成配置【开箱即用】
    交换机和路由器技术-29-OSPF虚链路
    Unity 2D 游戏学习笔记(3)
    Linux基础IO【II】
    Apache Arrow DataFusion原理与架构
    【FAQ】应用内支付服务无法拉起支付页面常见原因分析和解决方法
    后端都需要学习什么?
    【Redis】使用Java客户端操作Redis
    2022-10-17 我帮你踩了libcurl接收json数据的一些坑
    2023国赛数学建模A题思路分析 - 定日镜场的优化设计
  • 原文地址:https://blog.csdn.net/qq_40234695/article/details/133878212