import org.opendmtp.server.base.DMTPGeoEvent; //导入方法依赖的package包/类
public int insertEvent(DMTPGeoEvent geoEvent)
{
/* directory */
File storeDir = DeviceDBImpl.getDataStoreDirectory();
/* file */
// "account$device.csv"
StringBuffer sb = new StringBuffer();
sb.append(this.getAccountName());
sb.append("_");
sb.append(this.getDeviceName());
sb.append(".csv");
File dataFile = new File(storeDir, sb.toString());
/* extract */
DateTime ts = new DateTime(geoEvent.getTimestamp());
int statusCode = geoEvent.getStatusCode();
String statusDesc = StatusCodes.GetCodeDescription(statusCode);
GeoPoint gp = geoEvent.getGeoPoint();
double speed = geoEvent.getSpeed();
double heading = geoEvent.getHeading();
double altitude = geoEvent.getAltitude();
/* format */
// YYYY/MM/DD,hh:mm:ss,,,,,,
StringBuffer fmt = new StringBuffer();
ts.format("yyyy/MM/dd,HH:mm:ss",null,fmt); // local TimeZone
//ts.gmtFormat("yyyy/MM/dd,HH:mm:ss",fmt); // GMT TimeZone
fmt.append(",");
fmt.append(statusDesc);
fmt.append(",");
fmt.append(gp.getLatitudeString(null, null));
fmt.append(",");
fmt.append(gp.getLongitudeString(null, null));
fmt.append(",");
fmt.append(StringTools.format(speed, "0.0"));
fmt.append(",");
fmt.append(StringTools.format(heading, "0.0"));
fmt.append(",");
fmt.append(StringTools.format(altitude, "0.0"));
fmt.append("\n");
/* save */
try {
//Print.logDebug("Writing CSV record to file: " + dataFile);
FileTools.writeFile(fmt.toString().getBytes(), dataFile, true);
return ServerErrors.NAK_OK;
} catch (IOException ioe) {
Print.logException("Unable to save to file: " + dataFile, ioe);
return ServerErrors.NAK_EVENT_ERROR;
}
}