Merge branch 'master' of git://git.gag.com/fw/altos
[fw/altos] / ao-tools / altosui / AltosEepromReader.java
index 86bbaee0cde2a9640b768aca0f17a428032cc941..03e738124f37e2bafd06f6327b42860f3cc4c1ee 100644 (file)
@@ -95,14 +95,11 @@ public class AltosEepromReader extends AltosReader {
        boolean                 last_reported;
 
        double                  ground_pres;
-       double                  ground_accel;
 
        int                     n_pad_samples;
 
        int                     gps_tick;
 
-       boolean                 saw_boost;
-
        int                     boost_tick;
 
        boolean                 saw_gps_date;
@@ -116,7 +113,9 @@ public class AltosEepromReader extends AltosReader {
                                        if (last_reported)
                                                return null;
                                        last_reported = true;
-                                       return new AltosRecord(state);
+                                       AltosRecord r = new AltosRecord(state);
+                                       r.time = (r.tick - boost_tick) / 100.0;
+                                       return r;
                                }
                                record = record_iterator.next();
 
@@ -140,9 +139,6 @@ public class AltosEepromReader extends AltosReader {
                                        ground_pres += state.pres;
                                        state.ground_pres = (int) (ground_pres / n_pad_samples);
                                        state.flight_pres = state.ground_pres;
-                                       ground_accel += state.accel;
-                                       state.ground_accel = (int) (ground_accel / n_pad_samples);
-                                       state.flight_accel = state.ground_accel;
                                } else {
                                        state.flight_pres = (state.flight_pres * 15 + state.pres) / 16;
                                        state.flight_accel = (state.flight_accel * 15 + state.accel) / 16;
@@ -343,15 +339,11 @@ public class AltosEepromReader extends AltosReader {
                                if (record.cmd == Altos.AO_LOG_INVALID)
                                        continue;
                                tick = record.tick;
-                               if (!saw_boost && record.cmd == Altos.AO_LOG_STATE &&
-                                   record.a >= Altos.ao_flight_boost)
-                               {
-                                       saw_boost = true;
-                                       boost_tick = tick;
-                               }
                                if (record.cmd == Altos.AO_LOG_FLIGHT) {
                                        state.ground_accel = record.a;
+                                       state.flight_accel = record.a;
                                        state.flight = record.b;
+                                       boost_tick = tick;
                                        seen |= seen_flight;
                                }
 
@@ -396,6 +388,11 @@ public class AltosEepromReader extends AltosReader {
                                        }
                                }
                                records.add(record);
+
+                               /* Bail after reading the 'landed' record; we're all done */
+                               if (record.cmd == Altos.AO_LOG_STATE &&
+                                   record.a == Altos.ao_flight_landed)
+                                       break;
                        }
                } catch (IOException io) {
                } catch (ParseException pe) {