projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of git://git.gag.com/fw/altos
[fw/altos]
/
ao-tools
/
altosui
/
AltosEepromReader.java
diff --git
a/ao-tools/altosui/AltosEepromReader.java
b/ao-tools/altosui/AltosEepromReader.java
index e2a780accc3216dcd8abfbfc460b8ffe70dbe996..4cc8536a64a22bf889b35e26e6bc1e6d6ca9dcb1 100644
(file)
--- a/
ao-tools/altosui/AltosEepromReader.java
+++ b/
ao-tools/altosui/AltosEepromReader.java
@@
-101,8
+101,6
@@
public class AltosEepromReader extends AltosReader {
int gps_tick;
int gps_tick;
- boolean saw_boost;
-
int boost_tick;
boolean saw_gps_date;
int boost_tick;
boolean saw_gps_date;
@@
-116,7
+114,9
@@
public class AltosEepromReader extends AltosReader {
if (last_reported)
return null;
last_reported = true;
if (last_reported)
return null;
last_reported = true;
- return state;
+ AltosRecord r = new AltosRecord(state);
+ r.time = (r.tick - boost_tick) / 100.0;
+ return r;
}
record = record_iterator.next();
}
record = record_iterator.next();
@@
-130,9
+130,7
@@
public class AltosEepromReader extends AltosReader {
state.tick = record.tick;
switch (record.cmd) {
case Altos.AO_LOG_FLIGHT:
state.tick = record.tick;
switch (record.cmd) {
case Altos.AO_LOG_FLIGHT:
- state.ground_accel = record.a;
- state.flight = record.b;
- seen |= seen_flight;
+ /* recorded when first read from the file */
break;
case Altos.AO_LOG_SENSOR:
state.accel = record.a;
break;
case Altos.AO_LOG_SENSOR:
state.accel = record.a;
@@
-167,7
+165,15
@@
public class AltosEepromReader extends AltosReader {
break;
case Altos.AO_LOG_GPS_TIME:
gps_tick = state.tick;
break;
case Altos.AO_LOG_GPS_TIME:
gps_tick = state.tick;
+ AltosGPS old = state.gps;
state.gps = new AltosGPS();
state.gps = new AltosGPS();
+
+ /* GPS date doesn't get repeated through the file */
+ if (old != null) {
+ state.gps.year = old.year;
+ state.gps.month = old.month;
+ state.gps.day = old.day;
+ }
state.gps.hour = (record.a & 0xff);
state.gps.minute = (record.a >> 8);
state.gps.second = (record.b & 0xff);
state.gps.hour = (record.a & 0xff);
state.gps.minute = (record.a >> 8);
state.gps.second = (record.b & 0xff);
@@
-197,7
+203,7
@@
public class AltosEepromReader extends AltosReader {
}
break;
case Altos.AO_LOG_GPS_DATE:
}
break;
case Altos.AO_LOG_GPS_DATE:
- state.gps.year =
record.a & 0xff
;
+ state.gps.year =
(record.a & 0xff) + 2000
;
state.gps.month = record.a >> 8;
state.gps.day = record.b & 0xff;
break;
state.gps.month = record.a >> 8;
state.gps.day = record.b & 0xff;
break;
@@
-334,12
+340,14
@@
public class AltosEepromReader extends AltosReader {
AltosOrderedRecord record = new AltosOrderedRecord(line, index++, tick);
if (record == null)
break;
AltosOrderedRecord record = new AltosOrderedRecord(line, index++, tick);
if (record == null)
break;
+ if (record.cmd == Altos.AO_LOG_INVALID)
+ continue;
tick = record.tick;
tick = record.tick;
- if (!saw_boost && record.cmd == Altos.AO_LOG_STATE &&
- record.a >= Altos.ao_flight_boost)
- {
- saw_boost = true;
+ if (record.cmd == Altos.AO_LOG_FLIGHT) {
+ state.ground_accel = record.a;
+ state.flight = record.b;
boost_tick = tick;
boost_tick = tick;
+ seen |= seen_flight;
}
/* Two firmware bugs caused the loss of some GPS data.
}
/* Two firmware bugs caused the loss of some GPS data.
@@
-383,6
+391,11
@@
public class AltosEepromReader extends AltosReader {
}
}
records.add(record);
}
}
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) {
}
} catch (IOException io) {
} catch (ParseException pe) {