我尝试在平板电脑上搜索GPS的串口(Windows CE)。
我知道这是“COM 3”,但我希望程序能够自行找到它。我的意思是在所有端口上循环(for)并搜索它。
我的问题是我需要写“if”来告诉程序“这是我的GPS端口”。
谢谢大家。
答案 0 :(得分:1)
我知道Gps可以使用物理或虚拟串行com端口(即通过usb进行com)。由于一次只能打开一个com端口,因此在搜索gps-port时不应该有使用gps的程序。
你已经给出了答案“在所有端口上循环(for)和serche for”。
请注意,下面的示例是一个未经测试的方法,它是如何工作的。随意更新此Wiki页面以修复可能的错误并添加缺少的功能。
public string FindGpsPort()
{
foreach(string portname in System.IO.Ports.SerialPort.GetPortNames())
{
// using to make shure that the testport is closed after test
using (SerialPort testport = new SerialPort(){PortName = portname})
{
// maybe neccessary to set baudrate, parity, ... of com port
testport.Open();
// to do if error or exception this is not the
// gps port or some software already uses the gps-port
// to do: read some data from port and verify if it is GPS-Data
// if valid return portname ;
}
}
// All com ports tried but not found. throw exception or return error code
return null;
}