【发布时间】:2014-10-10 20:20:24
【问题描述】:
我有一个 Windows C# 应用程序。该应用程序通过串行端口连接到 RFID 读卡器。虽然我默认给它 COM 端口 3。我遇到了用户端口不可用并且他正在使用的端口与他的 Windows 操作系统不同的情况。
我的应用程序确实让用户能够更改 COM 端口,但要找到他们的操作系统正在使用哪个 COM 端口,用户需要转到设备管理器并检查,新手可能不习惯。
有没有一种功能或方法可以准确地找到我的 RFID 卡在 Windows 中连接到哪个端口,以便我可以简单地显示如下:
应用程序端口设置为:COM .... 操作系统上的设备连接端口:COM ....
我的目标框架也是 3.5
编辑1:
尝试使用 SerialPort.GetPortNames() 但它返回一个空字符串:System.String[]..
我的 RFID 设备列在设备管理器下 ===> 端口(COM 和 LPT)作为 Silicon Labs CP210x USB 到 UART 桥接器 (COM3)
【问题讨论】:
-
这是正常问题,串口不是即插即用设备。您必须向 RFID 制造商投诉,并寻求更好的方式与之交谈。
-
@HansPassant :我同意你的看法......但我想在这里找到的是,一旦我的设备已连接......我可以自己返回给用户它已连接到哪个端口?
-
本机只有一个串口,为什么还要多,那么选择就比较简单了。 SerialPort.GetPortNames() 为您提供 100% 的成功率。如果它有更多,那么你需要有人知道他在做什么来移除额外的。轻松愉快。
-
使用 SerialPort.GetPortNames() 给我 System.String[] 作为输出 ....
-
您无法真正绕过实际要求用户输入正确 COM 端口以使用的需求。探测可能会中断 RFID 阅读器未使用的端口上的活动。您如何处理连接了两个阅读器的情况,并且您想连接到特定的阅读器? (相信我,这种情况/问题最终会在程序的(长期)生命周期中发生。)
标签: c# windows winforms serial-port rfid