projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altos: Add debugging to ublox GPS driver
[fw/altos]
/
altosui
/
AltosKML.java
diff --git
a/altosui/AltosKML.java
b/altosui/AltosKML.java
index 6bdbeccabb4e9d388a9c9be42bc2490fd09bc896..140f3f0766b9bdb792a733c02d48dbf68f3fc869 100644
(file)
--- a/
altosui/AltosKML.java
+++ b/
altosui/AltosKML.java
@@
-17,10
+17,8
@@
package altosui;
package altosui;
-import java.lang.*;
import java.io.*;
import java.io.*;
-import java.text.*;
-import java.util.*;
+import org.altusmetrum.altoslib_1.*;
public class AltosKML implements AltosWriter {
public class AltosKML implements AltosWriter {
@@
-28,6
+26,7
@@
public class AltosKML implements AltosWriter {
PrintStream out;
int state = -1;
AltosRecord prev = null;
PrintStream out;
int state = -1;
AltosRecord prev = null;
+ double gps_start_altitude;
static final String[] kml_state_colors = {
"FF000000",
static final String[] kml_state_colors = {
"FF000000",
@@
-109,9
+108,15
@@
public class AltosKML implements AltosWriter {
void coord(AltosRecord record) {
AltosGPS gps = record.gps;
void coord(AltosRecord record) {
AltosGPS gps = record.gps;
+ double altitude;
+
+ if (record.height() != AltosRecord.MISSING)
+ altitude = record.height() + gps_start_altitude;
+ else
+ altitude = gps.alt;
out.printf(kml_coord_fmt,
gps.lon, gps.lat,
out.printf(kml_coord_fmt,
gps.lon, gps.lat,
-
record.filtered_altitude()
, (double) gps.alt,
+
altitude
, (double) gps.alt,
record.time, gps.nsat);
}
record.time, gps.nsat);
}
@@
-132,14
+137,17
@@
public class AltosKML implements AltosWriter {
if (gps == null)
return;
if (gps == null)
return;
+
+ if ((record.seen & (AltosRecord.seen_gps_lat)) == 0)
+ return;
+ if ((record.seen & (AltosRecord.seen_gps_lon)) == 0)
+ return;
if (!started) {
start(record);
started = true;
if (!started) {
start(record);
started = true;
+ gps_start_altitude = gps.alt;
}
}
- if (prev != null &&
- prev.gps.second == record.gps.second &&
- prev.gps.minute == record.gps.minute &&
- prev.gps.hour == record.gps.hour)
+ if (prev != null && prev.gps_sequence == record.gps_sequence)
return;
if (record.state != state) {
state = record.state;
return;
if (record.state != state) {
state = record.state;