今天在伊莉看到有人在求问可以读取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);
}
}
}
太好用了,存起来一定会用到的!