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 回答