X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altoslib%2FAltosEepromIterable.java;h=b84574ef9647261ea724d9510f0946f03469f544;hb=9a22a300009679a14d66214a5d61e9e6a177279f;hp=2ac10e85eb0d47cfa2c29066d174ce6f84b62d34;hpb=fe009534ce6846b6db96cac8f6c2d53ba8010d91;p=fw%2Faltos diff --git a/altoslib/AltosEepromIterable.java b/altoslib/AltosEepromIterable.java index 2ac10e85..b84574ef 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.*; @@ -23,15 +23,7 @@ import java.text.*; public class AltosEepromIterable extends AltosRecordIterable { - static final int seen_flight = 1; - static final int seen_sensor = 2; - static final int seen_temp_volt = 4; - static final int seen_deploy = 8; - static final int seen_gps_time = 16; - static final int seen_gps_lat = 32; - static final int seen_gps_lon = 64; - - static final int seen_basic = seen_flight|seen_sensor; + static final int seen_basic = AltosRecord.seen_flight|AltosRecord.seen_sensor; boolean has_accel; boolean has_gps; @@ -64,7 +56,7 @@ public class AltosEepromIterable extends AltosRecordIterable { state.tick = record.tick; switch (record.cmd) { case AltosLib.AO_LOG_FLIGHT: - eeprom.seen |= seen_flight; + eeprom.seen |= AltosRecord.seen_flight; state.ground_accel = record.a; state.flight_accel = record.a; state.flight = record.b; @@ -82,10 +74,10 @@ public class AltosEepromIterable extends AltosRecordIterable { state.flight_pres = (state.flight_pres * 15 + state.pres) / 16; } state.flight_accel = (state.flight_accel * 15 + state.accel) / 16; - if ((eeprom.seen & seen_sensor) == 0) + if ((eeprom.seen & AltosRecord.seen_sensor) == 0) eeprom.sensor_tick = record.tick - 1; state.flight_vel += (state.accel_plus_g - state.accel) * (record.tick - eeprom.sensor_tick); - eeprom.seen |= seen_sensor; + eeprom.seen |= AltosRecord.seen_sensor; eeprom.sensor_tick = record.tick; has_accel = true; break; @@ -96,17 +88,17 @@ public class AltosEepromIterable extends AltosRecordIterable { eeprom.n_pad_samples++; state.ground_pres = state.pres; } - eeprom.seen |= seen_sensor; + eeprom.seen |= AltosRecord.seen_sensor; break; case AltosLib.AO_LOG_TEMP_VOLT: state.temp = record.a; state.batt = record.b; - eeprom.seen |= seen_temp_volt; + eeprom.seen |= AltosRecord.seen_temp_volt; break; case AltosLib.AO_LOG_DEPLOY: state.drogue = record.a; state.main = record.b; - eeprom.seen |= seen_deploy; + eeprom.seen |= AltosRecord.seen_deploy; has_ignite = true; break; case AltosLib.AO_LOG_STATE: @@ -114,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(); @@ -132,28 +125,40 @@ public class AltosEepromIterable extends AltosRecordIterable { state.gps.locked = (flags & AltosLib.AO_GPS_VALID) != 0; state.gps.nsat = (flags & AltosLib.AO_GPS_NUM_SAT_MASK) >> AltosLib.AO_GPS_NUM_SAT_SHIFT; - state.new_gps = true; + state.gps_sequence++; 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;