c# - 连接或断开时检测 USB 到 RS232 转换器

标签 c# serial-port usb wmi

经过一番摸索之后,我设法在我的系统上找到了 USB 到 RS232 转换器的 com 端口号。我在当前系统中有 15 个。 我现在需要做的是检测何时连接或断开连接,以便我可以更新我的表。我可以弄清楚如何检测 USB 存储设备,但同样不适用于 USB 到 RS232 转换器。请问有人知道我如何检测到这个吗?

这是我用来计算转换器使用的 com 端口的代码片段

private void btn_tst2_Click(object sender, EventArgs e)
{          
    ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2",
    "SELECT * FROM Win32_PnPEntity WHERE ClassGuid=\"{4d36e978-e325-11ce-bfc1-08002be10318}\"");

    foreach (ManagementObject queryObj in searcher.Get())
    {
        rtxbx_output.AppendText(queryObj["Name"].ToString() +"\r");
    }

}

最佳答案

您可以创建某种线程或任务来查询从方法 System.IO.Ports.SerialPort.GetPortNames() 返回的数组:当此数组更改或添加新元素时,表示系统已经连接了一个新的串口。

当然,它会返回您系统上的每个串行端口,但是您可以使用您的代码片段选择其中哪些是 USB-RS232 转换器。

关于c# - 连接或断开时检测 USB 到 RS232 转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38080604/

相关文章:

c# - 扩展 T 的扩展方法 - 不好的做法?

c# - 如何使用将验证考虑在内的构建器自动创建测试数据

cocoa - 无法使用 GCD 调度源读取串行端口文件描述符

c - 使用 C/C++ 在 Linux 中与终端交互

c - USB设备id表理解

c# - 在静态类中定义的类的约束

serial-port - PixyCam (CMUCam5) 串行打印出奇怪的东西?

在C中与WIndows 7上的USB端口通信

c# - 是否可以模拟 FTDI USB 设备?

c# - 如何以编程方式从 sourcesafe 获取文件?