X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altoslib%2FAltosEepromIterable.java;h=7a8bbdea2f4a055d90350c456afa33dbd8fbeba6;hb=cef4e3ee95037050ae859fb2fdc0a57373764bd8;hp=5e2505833e81408e969c4730e70558ddb691dc40;hpb=7b6dd9105ba36aa11d6d0ee6e0823965b9beffb9;p=fw%2Faltos diff --git a/altoslib/AltosEepromIterable.java b/altoslib/AltosEepromIterable.java index 5e250583..7a8bbdea 100644 --- a/altoslib/AltosEepromIterable.java +++ b/altoslib/AltosEepromIterable.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.AltosLib; +package org.altusmetrum.altoslib_1; import java.io.*; import java.util.*; @@ -106,6 +106,7 @@ public class AltosEepromIterable extends AltosRecordIterable { break; case AltosLib.AO_LOG_GPS_TIME: eeprom.gps_tick = state.tick; + eeprom.seen |= AltosRecord.seen_gps_time; AltosGPS old = state.gps; state.gps = new AltosGPS(); @@ -128,24 +129,36 @@ public class AltosEepromIterable extends AltosRecordIterable { has_gps = true; break; case AltosLib.AO_LOG_GPS_LAT: + eeprom.seen |= AltosRecord.seen_gps_lat; int lat32 = record.a | (record.b << 16); + if (state.gps == null) + state.gps = new AltosGPS(); state.gps.lat = (double) lat32 / 1e7; break; case AltosLib.AO_LOG_GPS_LON: + eeprom.seen |= AltosRecord.seen_gps_lon; int lon32 = record.a | (record.b << 16); + if (state.gps == null) + state.gps = new AltosGPS(); state.gps.lon = (double) lon32 / 1e7; break; case AltosLib.AO_LOG_GPS_ALT: + if (state.gps == null) + state.gps = new AltosGPS(); state.gps.alt = record.a; break; case AltosLib.AO_LOG_GPS_SAT: if (state.tick == eeprom.gps_tick) { int svid = record.a; int c_n0 = record.b >> 8; + if (state.gps == null) + state.gps = new AltosGPS(); state.gps.add_sat(svid, c_n0); } break; case AltosLib.AO_LOG_GPS_DATE: + if (state.gps == null) + state.gps = new AltosGPS(); state.gps.year = (record.a & 0xff) + 2000; state.gps.month = record.a >> 8; state.gps.day = record.b & 0xff;