打开电脑指定USB端口上的UVC摄像头等Pnp设备

5 篇文章 0 订阅

在编写多摄像头软件时,PC中可能接入了多个UVC摄像头,此时,我们可能希望总是打开电脑上某个固定USB端口接入的摄像头,但若我们使用的是DirectShow库来驱动【方法见我的上一篇博文https://blog.csdn.net/tanjiaqi2554/article/details/100589588】,对应某个VID和PID[Vendor ID & Project ID]的摄像头并不会总是接在某一个固定的USB端口上,这具有一定的随机性。

因此,我们需要先遍历PC设备的所有Hub集线器,以及挂接在Hub下的所有Port端口。

而这些Port端口即对应PC的每个实际物理端口,如下图,我使用USBlyzer试用版查询我接入PC的两个UVC摄像头。

由上图,可以看到,我所接入的其中一个UVC设备,接在电脑的Hub1集线器的Port10端口上,由于与实际物理USB端口一一对应,因此,即使重启电脑该设备仍将接在这个端口上,此外,我们还可以看到它的VID为058F,PID为3822,而其Serial Number由于设备属性页中没有提供,为00,由系统随机生成了一个5&D4249C9&0&10

下面,通过查询DirectShow的DevicePath属性【源码资源链接见我的上一篇博文https://blog.csdn.net/tanjiaqi2554/article/details/100589588】,也可以得到上述VID和PID。

综上,我们其实只要查询系统Hub集线器上某个固定Port端口所连接的UVC设备的VID和PID信息,将其做绑定,再在DirectShow中遍历所有UVC设备,通过DevicePath属性匹配该相应的VID和PID,即可打开我们想要的物理端口上的UVC设备。

而Microsoft在WinDDK中有提供相关遍历系统所有Hub/Port信息的示例程序,详见开源实例usbView:

其相应执行程序usbView.exe运行效果如下:

 

通过整合该sample工程与我上一篇博文中的示例程序,应不难做到双击list中的某个USB PORT,即打开指定USB端口设备的软件,最后,若您要驱动的设备不是UVC类摄像头设备,也可依同样的方法,针对端口进行上述绑定。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
rt1062是一款高性能的微控制器,支持USB接口和UVC摄像头UVCUSB Video Class的缩写,是一种标准化的视频设备通信协议。rt1062提供了一个UVC摄像头的例程,可以帮助用户很方便地使用USB接口连接和控制UVC摄像头。 rt1062的UVC摄像头例程主要包括以下几个方面的功能: 1. 初始化USB接口和UVC摄像头:首先,需要初始化rt1062上的USB控制器并识别连接的UVC摄像头设备。这一过程会配置USB接口的通信参数,包括传输速率、数据格式等。 2. 采集图像数据:一旦UVC摄像头被正确地初始化和连接,rt1062就可以开始采集图像数据。通过USB接口,摄像头会将每帧的图像数据传输到rt1062上。 3. 图像数据处理:采集到的图像数据需要经过处理才能用于实际的应用。可以使用rt1062的图像处理功能,对图像进行预处理、压缩、加密等操作。这些处理步骤可以根据具体的应用需求进行定制。 4. 数据传输和控制:处理后的图像数据可以通过USB接口传输到PC或其他设备上。同时,rt1062也支持通过UVC协议控制摄像头的参数,例如曝光、白平衡、对焦等。 5. 错误处理和异常情况处理:在使用UVC摄像头的过程中,可能会出现一些错误或异常情况,例如摄像头断开连接、数据传输错误等。rt1062的UVC摄像头例程通过异常处理机制,能够及时检测和处理这些异常情况。 总之,rt1062的UVC摄像头例程提供了一个完整的解决方案,帮助用户快速开发和部署基于UVC摄像头的应用。用户只需要根据自己的需求进行定制和配置,即可实现高性能的UVC摄像头功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值