0

在我的代码中,我设置了以下值:

public SerialPort comPort = new SerialPort();
comPort.PortName = portName; 

例如,PortName可以是 COM17。

现在,如果我通过我的 GUI 添加了两个设备,都在 COM17 上,一个最终会引发异常(拒绝访问 COM17)。现在我想检查哪个设备挂在那个 COM 端口上,所以如果我的应用程序识别它,它可以通过端口发送命令,或者如果它未被识别,它将禁用我的 GUI 中的选项。

那么,有没有办法从 COM 端口获取唯一信息,我可以在安装时将其保存在我的数据库中?

编辑:澄清一下,如果错误的设备连接到该 COM 端口(除了我安装时),我会收到错误消息。我发现了那个错误,所以我知道它不是正确的。但我更想知道可能是哪种设备。假设我有 2 个驱动程序 DLL,2 个不同的设备,并且有人将它们切换了。然后我的应用程序可以检查并查看正确的名称,因此得出结论,这只是更改已安装对象的 COM 端口的问题,而不仅仅是抛出错误并说用户必须重新安装。

4

1 回答 1

1

这将取决于您的硬件。如果连接的设备会对特定的信号消息给出可预测且一致的响应,那么您可以使用它来识别它们。我做同样的事情来确定一个专有硬件连接到哪个 COM 端口。我遍历所有 COM 端口并发送一条消息,我知道该消息会从硬件给出特定响应。哪个端口给了我预期的结果是带有硬件的端口。

于 2013-03-14T15:07:28.683 回答