GPS последовательный порт искатель - PullRequest
1 голос
/ 19 декабря 2010

Я пытаюсь найти свой последовательный порт GPS на своем планшете (Windows CE).

Я знаю, что это на «COM 3», но я хочу, чтобы программа сама его нашла.Я имею в виду запустить в цикле (для) на всех портах и ​​искать это.

Мой вопрос, который "если" мне нужно написать, чтобы сказать программе "это мой порт GPS".1006 * Спасибо всем.

1 Ответ

1 голос
/ 19 декабря 2010

GPS, как я знаю, работает с физическим или виртуальным последовательным COM-портом (то есть, через USB).Поскольку только одно приложение может открывать com-порт за раз, при поиске gps-порта не должно быть программы, использующей gps.

Вы уже дали ответ «loop (for) на всех портах и ​​serche for».

Обратите внимание, что приведенный ниже пример представляет собой непроверенный пример того, как это может работать.Не стесняйтесь обновлять эту вики-страницу, чтобы исправить возможные ошибки и добавить недостающие функции.

 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;
 }
...