gpt4 book ai didi

c++ - 在 C++/Win7 中访问 COM 设备名称

转载 作者:行者123 更新时间:2023-11-28 07:15:52 25 4
gpt4 key购买 nike

我正在尝试编写一个程序,将 COM 端口信息发送到可能会被拔掉并以不同的 COM 端口号结束的设备。使用 SetupDi,我知道可以按编号列出计算机上的所有 COM 端口,但考虑到编号可能会改变,我正在尝试找到一种更好的方法来访问 COM 端口。

我使用的 COM 设备是 FTDI 串口到 com 适配器,可以让我对设备模型进行编程。我希望能够根据设备型号选择 COM 端口。我已经(几乎)尝试了使用 SetupDi 可以获得的所有属性,但没有成功。看起来 SetupDi 允许我访问的设备列表与显示在设备和打印机(型号名称确实显示)下的设备之间存在差异。有什么方法可以通过编程方式在“设备和打印机”窗口中获取设备并使用 Windows API 将它们映射到 COM 端口?

最佳答案

下面的链接是一个很好的(如果不是唯一的)综合概述,介绍了如何在 Windows 上枚举 COM 端口并以各种方式提取额外信息:

http://www.naughter.com/enumser.html

我们在自己的软件(Docklight)中使用的是根据 enumser.cpp 文件中的“UsingSetupAPI1”方式显示的(SetupAPI - GUID_DEVINTERFACE_COMPORT)。 UsingSetupAPI1 示例演示了如何提取 Windows 设备管理器中显示的设备名称以及 COM 编号。这在 enumser.cpp 代码中称为“friendlyNames”。

识别您的设备并与您的设备通信的另一种方法可能不是首先询问 Windows,而是询问 FTDI D2XX API:

http://www.ftdichip.com/Support/SoftwareExamples/CodeExamples.htm

当我们知道它始终是 FTDI 设备时,我们使用 D2XX API 进行通信。与通过“虚拟 COM 端口”使用 Windows Communications API 相比,识别更简单,我们的性能更好/延迟更少。

如果我们需要关联 COM 端口号和 FTDI 设备 ID,我们使用 FTDI D2XX API 的 ListDevices 和 GetComPortNumber 函数。

关于c++ - 在 C++/Win7 中访问 COM 设备名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20234594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com