1

我尝试在平板电脑 (Windows CE) 上搜索我的 GPS 串行端口。

我知道这是在“COM 3”上,但我希望程序自己找到它。我的意思是在所有端口上循环运行(for)并搜索它。

我的问题是我需要写哪个“如果”来告诉程序“这是我的 GPS 端口”。

谢谢你们。

4

1 回答 1

1

据我所知,Gps 可与物理或虚拟串行 com 端口(即通过 USB 的 com)一起使用。由于一次只有一个应用程序可以打开一个 com 端口,因此在搜索 gps 端口时不应有任何程序使用 gps。

您已经给出了答案“在所有端口上循环(for)并搜索”。

请注意,下面的示例是一个未经测试的 scetch 它是如何工作的。随时更新此 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;
 }
于 2010-12-19T12:31:16.787 回答