X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altosui%2FAltosEepromIterable.java;h=6fdaf8e04949cf6b85319647ad049acacabdc7fd;hb=e56038b65ba1c6413ba9942be3c092644986f126;hp=16349b884ec8729e52b9ad18fe4c7373f6c8eee7;hpb=44fb71ca3e5bccd5f601fc5a2d5da7292050b1d6;p=fw%2Faltos diff --git a/altosui/AltosEepromIterable.java b/altosui/AltosEepromIterable.java index 16349b88..6fdaf8e0 100644 --- a/altosui/AltosEepromIterable.java +++ b/altosui/AltosEepromIterable.java @@ -99,6 +99,7 @@ public class AltosEepromIterable extends AltosRecordIterable { double ground_pres; int gps_tick; int boost_tick; + int sensor_tick; EepromState() { seen = 0; @@ -128,10 +129,13 @@ public class AltosEepromIterable extends AltosRecordIterable { state.flight_pres = state.ground_pres; } else { state.flight_pres = (state.flight_pres * 15 + state.pres) / 16; - state.flight_accel = (state.flight_accel * 15 + state.accel) / 16; - state.flight_vel += (state.accel_plus_g - state.accel); } + state.flight_accel = (state.flight_accel * 15 + state.accel) / 16; + if ((eeprom.seen & 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.sensor_tick = record.tick; has_accel = true; break; case Altos.AO_LOG_PRESSURE: @@ -177,6 +181,7 @@ public class AltosEepromIterable extends AltosRecordIterable { state.gps.locked = (flags & Altos.AO_GPS_VALID) != 0; state.gps.nsat = (flags & Altos.AO_GPS_NUM_SAT_MASK) >> Altos.AO_GPS_NUM_SAT_SHIFT; + state.new_gps = true; has_gps = true; break; case Altos.AO_LOG_GPS_LAT: @@ -230,6 +235,7 @@ public class AltosEepromIterable extends AltosRecordIterable { case Altos.AO_LOG_SOFTWARE_VERSION: break; } + state.seen |= eeprom.seen; } LinkedList make_list() {