Instead of stopping early, continue reading the whole eeprom block so
that the extra serial data doesn't end up confusing the next user of
the serial line, which may well be reading the next flight.
Signed-off-by: Keith Packard <keithp@keithp.com>
has_lon = false;
has_time = false;
serial_line.printf("e %x\n", block);
has_lon = false;
has_time = false;
serial_line.printf("e %x\n", block);
- for (addr = 0; !done && addr < 0x100;) {
+ for (addr = 0; addr < 0x100;) {
try {
AltosEepromRecord r = new AltosEepromRecord(serial_line, block * 256 + addr);
try {
AltosEepromRecord r = new AltosEepromRecord(serial_line, block * 256 + addr);
lon = (double) (r.a | (r.b << 16)) / 1e7;
has_lon = true;
}
lon = (double) (r.a | (r.b << 16)) / 1e7;
has_lon = true;
}
+ if (!done)
+ add(addr / 8, r);
if (r.cmd == Altos.AO_LOG_STATE && r.a == Altos.ao_flight_landed)
done = true;
if (r.cmd == Altos.AO_LOG_STATE && r.a == Altos.ao_flight_landed)
done = true;
} catch (ParseException pe) {
} catch (ParseException pe) {
+ AltosEepromRecord r = new AltosEepromRecord(Altos.AO_LOG_INVALID,
+ 0, 0, 0);
+ if (!done)
+ add(addr/8, r);