summaryrefslogtreecommitdiff
path: root/altoslib/AltosConfigData.java
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2014-04-06 23:46:48 -0700
committerKeith Packard <keithp@keithp.com>2014-04-06 23:46:48 -0700
commit99c729495a8cc589718607ee35d22454c6af2994 (patch)
tree9d51c725c169dd5fd7f683f06ac8b4e61b4a7457 /altoslib/AltosConfigData.java
parent4211c59e585545817b3cac02b41bb73106d6403e (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.java24
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());