diff options
author | Bdale Garbee <bdale@gag.com> | 2014-08-14 17:08:36 -0600 |
---|---|---|
committer | Bdale Garbee <bdale@gag.com> | 2014-08-14 17:08:36 -0600 |
commit | 4828be0ca5252ac9cd6061209385dcd6c4c57965 (patch) | |
tree | dde4f86d893d280fbeef284120d6f967cdbfeaa5 /altoslib/AltosTelemetryLocation.java | |
parent | 17e894d1b65231d07df009bc4e8ca92864ccf790 (diff) | |
parent | 165b7dcf6fba90b15ff32b891cba4b9111c1965b (diff) |
Merge branch 'master' of ssh://git.gag.com/scm/git/fw/altos
Diffstat (limited to 'altoslib/AltosTelemetryLocation.java')
-rw-r--r-- | altoslib/AltosTelemetryLocation.java | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/altoslib/AltosTelemetryLocation.java b/altoslib/AltosTelemetryLocation.java index 32ca7608..427ae16e 100644 --- a/altoslib/AltosTelemetryLocation.java +++ b/altoslib/AltosTelemetryLocation.java @@ -37,11 +37,12 @@ public class AltosTelemetryLocation extends AltosTelemetryStandard { int climb_rate; int course; + public static final int AO_GPS_MODE_ALTITUDE_24 = (1 << 0); /* Reports 24-bits of altitude */ + public AltosTelemetryLocation(int[] bytes) { super(bytes); flags = uint8(5); - altitude = int16(6); latitude = uint32(8); longitude = uint32(12); year = uint8(16); @@ -57,6 +58,11 @@ public class AltosTelemetryLocation extends AltosTelemetryStandard { ground_speed = uint16(26); climb_rate = int16(28); course = uint8(30); + + if ((mode & AO_GPS_MODE_ALTITUDE_24) != 0) { + altitude = (int8(31) << 16) | uint16(6); + } else + altitude = int16(6); } public void update_state(AltosState state) { @@ -80,8 +86,9 @@ public class AltosTelemetryLocation extends AltosTelemetryStandard { gps.ground_speed = ground_speed * 1.0e-2; gps.course = course * 2; gps.climb_rate = climb_rate * 1.0e-2; - gps.hdop = hdop; - gps.vdop = vdop; + gps.pdop = pdop / 10.0; + gps.hdop = hdop / 10.0; + gps.vdop = vdop / 10.0; } state.set_temp_gps(); } |