产品名称 StudyGps
文档版本 StudyGps测试程序

[J2ME]华禹工控StudyGps测试程序设计说明

一 背景和功能

1.1. StudyGps程序的概念

一个可以下载到华禹手持设备(P1300、P1220、P1500系列)上的GPS测试程序,用于测试华禹手持设备的GPS定位功能,能够执行GPS定位的演示功能。(设备要求携带gps模块)

1.2 如何体验StudyGps测试程序

下载 StudyGps.jad 和 StudyGps.jar 到华禹手持设备上,执行Java程序,可体验Gps测试程序。

1.3. StudyGps程序界面

下面是StudyGps程序的界面(从模拟器中抓取):

GPS数据来之前:


GPS数据来之后:


二 设计思路

2.1 JNI的设计

Java 本地接口(Java Native Interface (JNI))允许运行在Java虚拟机(Java Virtual Machine (JVM))上的代码调用本地程序和类库,或者被它们调用,这些程序和类库可以是其它语言编写的,比如C、C++或者汇编语言。当一个程序无法完全使用Java编写时,开发者可以通过JNI来编写本地方法。

2.2 StudyGPS 中的包

2.2.1 com.mtk

com.mtk包中的Gpio.java中操作GPIO的方法为华禹提供的JNI方法。

2.2.2 com.huayu.gpio

com.huayu.gpio 包中的 GpioPort.java 定义了华禹手持设备的 GPIO 控制引脚。
对 Gpio 操作更详细的介绍见《华禹工控DIY手机GPIO测试程序设计说明》

2.2.3 其他

com.studygps.gps..view是gps界面显示的包。
com.studygps.gps.comm包是接口提供包。
com.studygps.gps..resourese包中的类是为解析NMEA-0183 协议提拱的接口类。
com.huayu.studyGPS.midlet包中StudyGPSMidelet.java为MIDLet类。

2.3 GPS具体程序实例

2.3.1 初始化GPS

2.3.1.1 创建一个类实现GPSLisnter接口

创建GPSCommConnector类,并将新建的实现了GPSLisnter接口的类传进去。
GPSCommConnector m_gpsconn=new GPSCommConnector(GPSView.this);

2.3.1.2 打开串口

m_gpsconn.open();

2.3.1.3 打开GPS电源

GpioConnector.GpsOpen();

2.3.1.4 初始化initFastMath()方法

com.studygps.resourse.Deg.initFastMath();

2.3.2接收和解析数据协议

* GPS协议为 NMEA-0183 协议
接收到解析好的GpsPacket,并根据需要取出数据.
public void DataComing(GpsPacket gpsData) {
}

2.3.2.1 经纬度

纬度 String latitude = gpsData.getCoords().latToString();
经度 String longitude = gpsData.getCoords().lonToString();

2.3.2.2 卫星

接收到卫星总数: Int count = gpsData.getSatView();
正在使用的卫星判断方法:
如果gpsData.getSat(i).getState()等于
com.studygps.resourse.GpsSat.USED 代表该卫星正在使用.
卫星强度 : int strength = gpsData.getSat( i ).getSnr();

2.3.2.3 精度

判断是否定位成功:
如果gpsData.getDopInfo()相似于"HDOP: ?" 代表GPS正在定位中.
反之,代表已经定位成功.
精度 Int HDOP =
gpsData.getDopInfo().substring(5,gpsData.getDopInfo().length();

2.3.2.4 速度

Int Speed = com.studygps.resourse.Coords.convertSpd(gpsData.getSpd());
速度经过转换之后单位为km/s.

三 资源

华禹工控资源:

1. GPS演示程序原码包下载:StudyGps

购买信息:

1. 创易电子淘宝店

编写者 日期 关键词
华禹工控 2010-08-04 File、J2ME、华禹手机模块、JNI
302 Found

302 Found


nginx/1.8.0