📄 gpsrecord.java~14~
字号:
package gps;
import javax.microedition.rms.RecordStore;
import javax.microedition.rms.RecordStoreException;
import javax.microedition.rms.RecordStoreFullException;
import javax.microedition.rms.RecordStoreNotFoundException;
import javax.microedition.rms.RecordStoreNotOpenException;
import gps.datatypes.Record;
import gps.exceptions.EmptyBufferException;
import gps.parser.StringTokenizer;
/**
* Stores a single record (GPS data).
*
* @author Dominik Schmidt
*/
public class GPSRecord {
private static RecordStore gpsRecord= null;
private final static String fileName = "gps";
private static final long WAIT = 1000;
/**
* Creates a new instance of RecordBuffer
*/
public GPSRecord() {
try {
//RecordStore.deleteRecordStore(fileName);
gpsRecord = RecordStore.openRecordStore(fileName , true);
} catch (RecordStoreFullException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RecordStoreNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RecordStoreException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* Gets stored record.
*
* @return Stored record
* @throws EmptyBufferException If buffer is empty
*/
public static synchronized Record getRecord() throws EmptyBufferException {
byte [] bytes;
String temp ;
Record rec = new Record();
try {
gpsRecord = RecordStore.openRecordStore(fileName , true);
if (gpsRecord.getNumRecords() == 0)
{
return rec;
}
//System.out.println(gpsRecord.getNumRecords());
bytes = gpsRecord.getRecord(gpsRecord.getNumRecords());
temp =new String(bytes,0,bytes.length);
StringTokenizer token = new StringTokenizer(temp,",");
if (token.hasMoreTokens())
{
rec.dateTimeOfFix = token.nextToken();
rec.altitude =token.nextToken();
//System.out.println("record.altitude: "+rec.altitude);
rec.lattitude = token.nextToken();
//System.out.println("record.lattitude: "+rec.lattitude);
rec.longitude = token.nextToken();
//System.out.println( "record.longitude:"+ rec.longitude);
rec.satelliteCount = token.nextToken();
}
gpsRecord.closeRecordStore();
} catch (RecordStoreFullException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RecordStoreNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RecordStoreException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return rec;
}
public static synchronized void deleteRecords()
{
RecordStore rs ;
try {
rs = RecordStore.openRecordStore(fileName , false);
rs.closeRecordStore();
if (rs.getNumRecords()>0)
{
RecordStore.deleteRecordStore(fileName);
}
else
{
rs.closeRecordStore();
}
} catch (RecordStoreFullException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RecordStoreNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RecordStoreException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* Puts record in buffer.
*
* @param record Record to be stored
*/
public static synchronized void putRecord(Record record) {
String temp = new String();
if (true /*record.quality.equals("1")*/)
{
try {
temp =record.dateTimeOfFix+","+record.altitude +"," +record.lattitude + "," + record.longitude+"," + record.satelliteCount;
gpsRecord = RecordStore.openRecordStore(fileName , false);
gpsRecord.addRecord(temp.getBytes(),0,temp.getBytes().length);
gpsRecord.closeRecordStore();
} catch (RecordStoreNotOpenException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RecordStoreFullException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RecordStoreException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void test()
{
Record rec = new Record();
GPSRecord rs = new GPSRecord();
rec.warning = true;
rec.altitude="23.5";//116.378463 40.00383
rec.lattitude ="40.00383";
rec.longitude = "116.378463";
/**
static double imgUpLeftX = 116.3120256963415;
static double imgDownRightX = 116.44668571143103;
static double imgDownRightY = 39.95382820844796;
static double imgUpLeftY = 40.056084587970325;
*/
GPSRecord.putRecord(rec);
try {
rec = GPSRecord.getRecord();
System.out.println(rec.altitude);
} catch (EmptyBufferException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -