java for GPS

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

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

這樣編譯執行:

javac -classpath comm.jar;. .
 -classpath comm.jar;.  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);
    }
  }
}

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

Print Friendly, PDF & Email

發佈留言

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

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料