从gps设备读取NMEA数据

时间:2013-06-29 08:43:21

标签: java sockets networking gps nmea

我正在使用gps系统。我想从GPS设备读取数据。我正在使用NMEA协议。我从设备获取数据,但它是一些像我没有得到的ecoded 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数据。

2 个答案:

答案 0 :(得分:2)

如果你要获得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提取经度,纬度等。

答案 1 :(得分:0)

如果您的数据是包含标点符号的字母数字字符串,那么您需要知道NMEA GPS数据的样子。

每行有一种格式;一个前缀,指示该行上的数据类型,然后是我称之为“固定宽度字段”的格式,用于此行的其余部分 - 4个字符,下一个7个字符等等。

搜索“nmea gps数据”将为您提供有关这些字符串的完整详细信息。

如果您的数据看起来像垃圾而不是字母数字字符串和偶然的标点符号,那么您需要直接获得波特率。