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>
(cherry picked from commit
629a7637871b24fe6d1204aaa7185d84933d4639)
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);