COM 端口 - 如何识别设备 (.net/c#)

发布于 2024-09-01 15:38:30 字数 255 浏览 3 评论 0原文

我正在为 Windows CE 编程,并且需要连接到扫描仪。没有问题 - 我知道它在端口 COM0 上,但是如果我早些时候插入另一个设备,它会获得另一个 COM 端口...要获取所有 com 端口,简单的方法是:

SerialPort.GetPortNames()

但我不知道如何识别设备?有没有标准的方法?我无法“ping”它,因为有一个设备只发送数据...它一直在发送垃圾数​​据...而且我不知道如何“ping”设备...

I'm programming for Windows CE and I need to connect to a scanner. There is no problem - I know that it is on port COM0, but if I plug in another device earlier it gets another COM port... to get all com ports the easy way is:

SerialPort.GetPortNames()

But I don't know how to identify a device? Is there any standard way? I can't 'ping' it since there is one device that only sends data... it spams data all the time... and I don't know how to 'ping' a device...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

森林散布 2024-09-08 15:38:31

串行连接的问题是无状态。你无法知道对方是否有人在听或者谁在听。

要找出这一点,您有几个选择:

  • 如果可能的话,找出是否有人使用硬件握手(如 RTS、CTS 等)。
  • 要找到谁在那儿,您通常会发送某种您知道正确答案的识别消息(例如,您将发送 AT 到调制解调器,然后您将收到 OK

因此,如果您无法使用上述任何方法,则无法自动检测要使用的端口,因此唯一的工作模型是询问用户正确的设置(例如具有可用端口或波特率的组合框)。 、不同布尔配置设置的复选框等)。

The problem of a serial connection is that is stateless. You can't know if anyone is on the other side listening or who is listening.

To find this out you just have a few choices:

  • To find out if there is someone use hardware handshake (like RTS, CTS, etc.) if possible.
  • To find who is there, you normally send some kind of identify message where you know the correct answer (e.g. to a modem you'll send AT and you'll receive an OK.

So if you can't use any of the above methods you can't automatically detect which port to use. So the only working model is to ask the user for the correct setting(s) (e.g. ComboBox with available ports or BaudRates, CheckBoxes for the different boolean configuration settings, etc).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文