在c++ (Windows)中自动检测Arduino
Auto detect Arduino in C++ (Windows)
我正在尝试编写一个c++程序,自动检测所有连接的arduino的COM端口号。
我已经发现我可以得到HKLM/HARDWARE/DEVICEMAP/SERIALCOMM
中所有可用的COM端口设备的列表,但是没有关于那里正在侦听的设备的信息。是否有一种方法可以获得例如GUID或设备描述来检测哪一个是Arduino?我看到的唯一另一种方法是尝试向每个端口发送一些内容,并侦听先前定义的响应。谢谢你的回复:)
编辑:我想我应该提到我使用g++作为编译器和MinGW。syam链接了我这个如何自动检测Arduino COM端口?它似乎实现了我想要的,但是用c#编写的,当我需要纯Win32时使用。net特定的api。
串口设备不是Plug N Play,因此无法获得设备描述和GUID。因此,使用串口技术自动检测Arduino是不可能的。
根据这篇文章,一种方法是查看HKEY_LOCAL_MACHINESystemCurrentControlSetServices
:
- 在
HKEY_LOCAL_MACHINESystemCurrentControlSetServices
中有几个相关的子键:usbaudio
、usbccgb
、usbehci
、usbprint
、usbscan
等。Arduino可能会在usbccgb
,usbehci
,但老实说,我不确定。 - 在这些键的内部,你正在寻找的值的名称是数字,如
0
,1
等。 - 设备ID
您可以从windows设备管理器中找到任何设备的设备ID:右键单击设备,选择属性,并选择详细信息选项卡。显然,您可以通过编程方式打开必要的注册表项,查找Arduino设备的设备ID。对于您的问题,这种方法的问题在于您的Arduino检测器必须为您计划使用的每个Arduino预编程。
相关文章:
- 无法获得 std::from_chars 自动检测基础
- QImage:加载图像时自动检测格式
- 如何让Visual Studio自动检测子文件夹中的.cpp文件?
- GCC - 如何自动检测每个基本模块
- 自动检测C++14 "return should use std::move"情况
- c++Windows自动检测代理设置
- 函数有没有办法自动检测其参数的数据类型?(请不要建议函数重载)
- 自动检测源以进行自动制作
- 使C++初始值设定项自动检测工会成员
- 如何使用 C/C++自动检测 snmp 设备
- 用c++实现函数对象的自动检测类型
- C/C++中操作系统的自动检测
- 使用ESP8266自动检测本地服务器
- 如何以可移植的方式在C++中自动检测内存泄漏
- 一种自动检测对象的方法,该方法通过值传递给c++中的函数
- 同时自动检测COM-Port和WriteLine
- 在c++ (Windows)中自动检测Arduino
- 自动检测不带参数的模板参数
- 使用gammu时自动检测调制解调器端口
- 方法自动检测find_first_of()和族不正确的情况