gpt4 book ai didi

c# - 如何发现设备是否连接到特定的串行 (COM) 端口?

转载 作者:太空宇宙 更新时间:2023-11-03 20:22:16 25 4
gpt4 key购买 nike

如何使用 C# 的 SerialPort 类发现设备是否连接到特定的串行 (COM) 端口?

注意:即使没有设备连接到该端口,该类的Open 方法也会打开该端口。

最佳答案

1.WMI:SELECT * FROM Win32_SerialPort:

ManagementObjectSearcher manObjSearch = new ManagementObjectSearcher("Select * from Win32_SerialPort");
ManagementObjectCollection manObjReturn = manObjSearch.Get();

foreach (ManagementObject manObj in manObjReturn)
{
//int s = manObj.Properties.Count;
//foreach (PropertyData d in manObj.Properties)
//{
// Console.WriteLine(d.Name);
//}
Console.WriteLine(manObj["DeviceID"].ToString());
Console.WriteLine(manObj["Name"].ToString());
Console.WriteLine(manObj["Caption"].ToString());
}

2. 如果设备发回响应:System.IO.Ports.SerialPort.GetPortNames()并发送基本命令:

foreach (string portname in SerialPort.GetPortNames())
{
var sp = new SerialPort(portname, 4800, Parity.Odd, 8, StopBits.One);
try
{
sp.Open();
sp.Write("Your known command to device");
Thread.Sleep(500);
string received = sp.ReadLine();

if (received == "expected response")
{
Console.WriteLine("device connected to: " + portname);
break;
}
}
catch (Exception)
{
Console.WriteLine("device NOT connected to: " + portname);
}
finally
{
sp.Close();
}
}

关于c# - 如何发现设备是否连接到特定的串行 (COM) 端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12813151/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com