From: Keith Packard Date: Sun, 10 Feb 2013 22:40:48 +0000 (-0800) Subject: altoslib: Fix available flight log storage computation X-Git-Tag: altosdroid_v1.2-1~117 X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=commitdiff_plain;h=a9cf50c9f29f42cc3ca0daff3c69a4087cf9aa1c altoslib: Fix available flight log storage computation number of flights was off by one as it was initialized to -1 storage erase unit wasn't getting fetched correctly flight_log_max is in kB, not B; need to multiply by 1024 Signed-off-by: Keith Packard --- diff --git a/altoslib/AltosConfigData.java b/altoslib/AltosConfigData.java index 24ab2556..12659d88 100644 --- a/altoslib/AltosConfigData.java +++ b/altoslib/AltosConfigData.java @@ -116,12 +116,22 @@ public class AltosConfigData implements Iterable { default: if (flight_log_max <= 0) return 1; + int log_max = flight_log_max * 1024; int log_space = storage_size - storage_erase_unit; - int log_used = stored_flight * flight_log_max; + int log_used; + + if (stored_flight <= 0) + log_used = 0; + else + log_used = stored_flight * log_max; + int log_avail; if (log_used >= log_space) - return 0; - return (log_space - log_used) / flight_log_max; + log_avail = 0; + else + log_avail = (log_space - log_used) / log_max; + + return log_avail; } } @@ -196,7 +206,7 @@ public class AltosConfigData implements Iterable { storage_size = -1; storage_erase_unit = -1; - stored_flight = -1; + stored_flight = 0; } public void parse_line(String line) { @@ -272,7 +282,7 @@ public class AltosConfigData implements Iterable { /* Storage info replies */ try { storage_size = get_int(line, "Storage size:"); } catch (Exception e) {} - try { storage_erase_unit = get_int(line, "Storage erase unit"); } catch (Exception e) {} + try { storage_erase_unit = get_int(line, "Storage erase unit:"); } catch (Exception e) {} /* Log listing replies */ try { get_int(line, "flight"); stored_flight++; } catch (Exception e) {} @@ -485,7 +495,6 @@ public class AltosConfigData implements Iterable { reset(); link.printf("c s\nf\nv\n"); read_link(link, "software-version"); - System.out.printf("Log format %d\n", log_format); switch (log_format) { case AltosLib.AO_LOG_FORMAT_FULL: case AltosLib.AO_LOG_FORMAT_TINY: