1

タブレット (Windows CE) で GPS のシリアル ポートを検索しようとしています。

これが「COM 3」にあることは知っていますが、プログラムにこれを自動的に見つけてもらいたいのです。つまり、すべてのポートでループ (for) を実行し、これを検索します。

私の質問は、プログラムに「これが私のGPSポートです」と伝えるために「もし」書く必要があるかどうかです。

皆さん、ありがとうございました。

4

1 に答える 1

1

私が知っているように、Gpsは物理または仮想シリアルCOMポート(つまり、USB経由のCOM)で動作します。一度に 1 つのアプリケーションしか COM ポートを開くことができないため、gps ポートの検索中に gps を使用するプログラムは存在しないはずです。

あなたはすでに「すべてのポートで(for)ループし、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 に答える