0

私はGPSシステムで働いています。GPS デバイスからデータを読み取りたい。NMEA プロトコルを使用しています。デバイスからデータを取得していますが、取得できないエンコードされた ASCII 文字列のようなものです。欲求データを取得する方法はありますか?私のコードは以下の通りです..

// My Code //
ServerSocket ss = new ServerSocket(1500);
Socket s1 = ss.accept();
While(s1 != null)
{
     InputStream is = s1.getInputStream();
     BufferedReader br = new InputStreamReader(is);

     String result = br.readLine();
     System.out.println(result)l

}

しかし、私はエンコードされた出力または何かを取得しています。NMEAデータの正しい読み方を教えてください。

4

2 に答える 2

1

NMEA データを取得している場合は、次のような形式にする必要があります。

$GPRMC,220516,A,5133.82,N,00042.24,W,173.8,231.8,130694,004.2,W*70

  1   220516     Time Stamp
  2   A          validity - A-ok, V-invalid
  3   5133.82    current Latitude
  4   N          North/South
  5   00042.24   current Longitude
  6   W          East/West
  7   173.8      Speed in knots
  8   231.8      True course
  9   130694     Date Stamp
  10  004.2      Variation
  11  W          East/West
  12  *70        checksum

これで、単純な Java を使用して経度、緯度などを抽出するだけで済みます。

于 2015-11-13T10:48:18.353 に答える
0

データが句読点のある英数字の文字列である場合、NMEA GPS データがどのように見えるかを知る必要があります。

各行にはフォーマットがあります。その行にあるデータの種類を示す接頭辞と、行の残りの部分を「固定幅フィールド」と呼んでいるフォーマット -- これは 4 文字、次は 7 文字など。

「nmea gps データ」を検索すると、これらの文字列の詳細が表示されます。

データが英数字の文字列や時折の句読点ではなくゴミのように見える場合は、ボーレートを正しく取得する必要があります。

于 2013-06-29T12:59:36.177 に答える