diff options
author | Keith Packard <keithp@keithp.com> | 2014-04-06 23:46:48 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2014-04-06 23:46:48 -0700 |
commit | 99c729495a8cc589718607ee35d22454c6af2994 (patch) | |
tree | 9d51c725c169dd5fd7f683f06ac8b4e61b4a7457 /altoslib/AltosConfigData.java | |
parent | 4211c59e585545817b3cac02b41bb73106d6403e (diff) |
altosui: Disable flight log configuration while flights are stored
The log code won't let you resize the maximum flight log while there
is still data on the flight computer; the code to figure that out in
the UI was busted, leaving users confused about why it wasn't working.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altoslib/AltosConfigData.java')
-rw-r--r-- | altoslib/AltosConfigData.java | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/altoslib/AltosConfigData.java b/altoslib/AltosConfigData.java index c4e108f8..edaf4601 100644 --- a/altoslib/AltosConfigData.java +++ b/altoslib/AltosConfigData.java @@ -351,9 +351,22 @@ public class AltosConfigData implements Iterable<String> { channel); } + boolean use_flash_for_config() { + if (product.startsWith("TeleMega")) + return false; + if (product.startsWith("TeleMetrum-v2")) + return false; + return true; + } + + public int log_limit() { - if (storage_size > 0 && storage_erase_unit > 0) { - int log_limit = storage_size - storage_erase_unit; + if (storage_size > 0) { + int log_limit = storage_size; + + if (storage_erase_unit > 0 && use_flash_for_config()) + log_limit -= storage_erase_unit; + if (log_limit > 0) return log_limit / 1024; } @@ -410,15 +423,20 @@ public class AltosConfigData implements Iterable<String> { dest.set_radio_calibration(radio_calibration); dest.set_radio_frequency(frequency()); boolean max_enabled = true; + + if (log_limit() == 0) + max_enabled = false; + switch (log_format) { case AltosLib.AO_LOG_FORMAT_TINY: max_enabled = false; break; default: - if (stored_flight >= 0) + if (stored_flight > 0) max_enabled = false; break; } + dest.set_flight_log_max_enabled(max_enabled); dest.set_radio_enable(radio_enable); dest.set_flight_log_max_limit(log_limit()); |