1

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

SerialPort.GetPortNames()

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

4

1 回答 1

4

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

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

  • 如果可能的话,找出是否有人使用硬件握手(如 RTS、CTS 等)。
  • 为了找到谁在那里,您通常会在您知道正确答案的地方发送某种身份信息(例如,您将发送到调制解调器,AT然后您将收到一个OK.

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

于 2010-05-17T12:48:09.427 回答