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

COM端口-如何识别设备(.net/c#),c#,.net,serial-port,identification,C#,.net,Serial Port,Identification,我正在为Windows CE编程,需要连接到扫描仪。没有问题-我知道它在端口COM0上,但如果我更早地插入另一个设备,它会得到另一个COM端口。。。要获取所有com端口,最简单的方法是: SerialPort.GetPortNames() 但我不知道如何识别设备?有什么标准的方法吗?我不能“ping”它,因为有一个设备只发送数据。。。它一直在发送数据。。。我不知道如何“ping”一个设备…串行连接的问题是它是无状态的。你不知道对方有没有人在听,也不知道是谁在听 要了解这一点,您只有几个选择:

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

SerialPort.GetPortNames()

但我不知道如何识别设备?有什么标准的方法吗?我不能“ping”它,因为有一个设备只发送数据。。。它一直在发送数据。。。我不知道如何“ping”一个设备…

串行连接的问题是它是无状态的。你不知道对方有没有人在听,也不知道是谁在听

要了解这一点,您只有几个选择:

  • 如果可能的话,可以使用硬件握手(如RTS、CTS等)来确定是否有人
  • 要找到谁在那里,您通常会在知道正确答案的地方发送某种识别消息(例如,您将在处发送
    ,然后收到
    确认

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

串行连接的问题在于它是无状态的。您无法知道另一端是否有人在侦听或是谁在侦听

要了解这一点,您只有几个选择:

  • 如果可能的话,可以使用硬件握手(如RTS、CTS等)来确定是否有人
  • 要找到谁在那里,您通常会在知道正确答案的地方发送某种识别消息(例如,您将在处发送
    ,然后收到
    确认

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

它会通过USB添加任何值吗?不会,因为在最后,它只是显示为系统中的另一个串行端口。可能存在一些东西,您可以通过设备管理器枚举机器中的所有设备,并检查设备ID或类似的东西,但我对这一级别的软件不太了解。它会添加ny值表示它是通过USB的?不,因为最后它只是显示为系统中的另一个串行端口。可能存在一些问题,您可以通过设备管理器枚举计算机中的所有设备,并检查设备ID或类似的内容,但我不太了解这一级别的软件。