2013-06-29 85 views
0

我正在使用gps系統。我想從GPS設備讀取數據。我正在使用NMEA協議。我從設備獲取數據,但它有點像我不明白的編碼ASCII字符串。那麼有沒有辦法獲得慾望數據。我的代碼是根據..從gps設備讀取NMEA數據

// 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數據。

+0

樹立正確的波特率 – AlexWien

+0

是否有任何理由,你爲什麼不張貼的「編碼ASCII」字符串? – AlexWien

回答

0

如果你的數據是一些標點符號字母數字串,那麼你需要知道什麼是NMEA GPS數據的模樣。

每行都有格式;指示該行上的數據類型的前綴,然後格式I稱爲該行的其餘部分的「固定寬度字段」 - 4個字符用於此,7個字符用於下一個字符等。

搜索對於「nmea GPS數據」將給你詳細的關於這些字符串。

如果您的數據看起來像垃圾一樣的,而不是字母數字字符和標點符號occcasional字符串,那麼你就需要獲得波特率直。

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提取經度,緯度等。