diff options
author | Keith Packard <keithp@keithp.com> | 2014-07-10 16:15:52 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2014-07-10 16:15:52 -0700 |
commit | b8fa4e9a077e8e04b922d0c434c139ad0a57ee66 (patch) | |
tree | 55cd8c16ba9cf9419cbc09a078f1652529004559 /altoslib/AltosEepromMega.java | |
parent | 6f2a4c610dfacbf500650db0eeeca6623bb49c5c (diff) |
altoslib: Clean up GPS DOP support in AltosState
Parse out hdop/pdop/vdop from telem and eeprom. Deal with legacy
eeprom files that have dop/100 instead of dop/10 values.
Clear state DOP values to MISSING at startup
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altoslib/AltosEepromMega.java')
-rw-r--r-- | altoslib/AltosEepromMega.java | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/altoslib/AltosEepromMega.java b/altoslib/AltosEepromMega.java index 5d5f3fef..1616de77 100644 --- a/altoslib/AltosEepromMega.java +++ b/altoslib/AltosEepromMega.java @@ -187,8 +187,21 @@ public class AltosEepromMega extends AltosEeprom { 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(); + if (state.compare_version("1.4.9") >= 0) { + gps.pdop = pdop() / 10.0; + gps.hdop = hdop() / 10.0; + gps.vdop = vdop() / 10.0; + } else { + gps.pdop = pdop() / 100.0; + if (gps.pdop < 0.8) + gps.pdop += 2.56; + gps.hdop = hdop() / 100.0; + if (gps.hdop < 0.8) + gps.hdop += 2.56; + gps.vdop = vdop() / 100.0; + if (gps.vdop < 0.8) + gps.vdop += 2.56; + } break; case AltosLib.AO_LOG_GPS_SAT: state.set_tick(tick); |