summaryrefslogtreecommitdiff
path: root/altoslib/AltosConfigData.java
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2013-02-10 14:40:48 -0800
committerKeith Packard <keithp@keithp.com>2013-02-10 14:40:48 -0800
commita9cf50c9f29f42cc3ca0daff3c69a4087cf9aa1c (patch)
tree0047e2eba5aaeaa9e27ab68d2bd6717c284102ba /altoslib/AltosConfigData.java
parent504cf412e8b60b5ff2dea93ed3336f0e058dea62 (diff)
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 <keithp@keithp.com>
Diffstat (limited to 'altoslib/AltosConfigData.java')
-rw-r--r--altoslib/AltosConfigData.java21
1 files changed, 15 insertions, 6 deletions
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<String> {
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<String> {
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<String> {
/* 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<String> {
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: