【发布时间】:2016-12-30 19:36:16
【问题描述】:
我用 C# 编写了一个程序,允许我与计算机内部的串行端口进行通信(使用 AT 命令)。 查找端口的代码如下所示:
ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2",
"SELECT * FROM Win32_PnPEntity");
//This loops through the results from the searcher
foreach (ManagementObject queryObj in searcher.Get())
{
//If it finds the port,
if (queryObj["Caption"].ToString().Contains("##### Wireless AT"))
{
//it writes it to the file
sw.WriteLine("serial port : {0}", queryObj["Caption"] + "\n");
sw.Flush();
}
此代码与我们的旧调制解调器完美配合,它搜索 COM 端口并找到 AT 无线命令端口。这是我最终将 AT 命令发送到的端口。这是我正在搜索的端口的设备管理器的两张图片
问题是,我们正在使用更新的调制解调器推出我们的计算机,它们的工作方式不同......
新调制解调器不使用在设备管理器中列出物理端口的串行端口。另外,Win32_PnpEntity 搜索中没有显示串行端口...串行端口列在调制解调器属性下。
我的问题是,如何使用 C# 找到调制解调器的串口?
如果有什么方法可以详细说明,请告诉我。
-卢克
【问题讨论】:
标签: c# serial-port