From 629a7637871b24fe6d1204aaa7185d84933d4639 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sat, 19 Feb 2011 01:04:19 -0800 Subject: [PATCH] altosui: Always read whole eeprom block, even at end of flight 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 --- altosui/AltosEepromBlock.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/altosui/AltosEepromBlock.java b/altosui/AltosEepromBlock.java index f223f3fb..11438df8 100644 --- a/altosui/AltosEepromBlock.java +++ b/altosui/AltosEepromBlock.java @@ -56,7 +56,7 @@ public class AltosEepromBlock extends ArrayList { 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); @@ -93,10 +93,15 @@ public class AltosEepromBlock extends ArrayList { 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; - add(addr / 8, r); } catch (ParseException pe) { + AltosEepromRecord r = new AltosEepromRecord(Altos.AO_LOG_INVALID, + 0, 0, 0); + if (!done) + add(addr/8, r); } addr += 8; } -- 2.30.2