java for GPS

今天在伊莉看到有人在求問可以讀取GPS接收器的訊號(NMEA)的JAVA程式,剛好看到陳鍾誠的網站上有一篇如何以 Java 取得衛星定位資訊 ?,我覺得重點是這個gps.zip,它包了javax.comm 這個不在標準 JDK 中的函式庫,你要先這樣安裝:

* 將 win32com.dll 檔案複製到 {JDK}bin 的目錄下。
* 將 javax.comm.properties 檔案複製到 {JDK}lib 的目錄下。

這樣編譯執行:

javac -classpath comm.jar;. Gps.java
java -classpath comm.jar;. Gps COM4

程式碼是這樣的:

import java.io.*;
import javax.comm.*;

public class Gps {
  public static void main( String[] args) throws Exception {
     receive(args[0]);    // 接收來自指定的 COM port 的衛星訊號。
  }

  // 以下是衛星接收的主要程式。
  public static void receive(String port) throws Exception {
    // 開啟 COM port (在 Java 中稱為 Serial Port)。
    SerialPort serialPort = ( SerialPort ) CommPortIdentifier.getPortIdentifier( port ).open( "GPS", 60 );
    // 設定接收參數,包含頻率為 4800bps, 8個資料位元後接著一個停止位元,沒有同位位元(parity bit)等。
    serialPort.setSerialPortParams( 4800, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE );
    // 將該 Serial Port 當成檔案一樣開啟,然後不斷讀取即可。
    BufferedReader in = new BufferedReader( new InputStreamReader(serialPort.getInputStream()) );
    while (true ) {
      String msg = in.readLine();
      System.out.println(msg);
    }
  }
}

太好用了,存起來一定會用到的!

感謝你看到這裡,很快就可以離開了,但最好的獎勵行動就是按一下幫我分享或留言,感恩喔~

點我分享到Facebook

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *