Merge branch 'master' into altosdroid
[fw/altos] / altoslib / AltosConfigData.java
index f940b150710a8743d6e64bd9f44ab417bdb66462..12659d88100322bffdca273180047356951551fa 100644 (file)
@@ -15,7 +15,7 @@
  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
  */
 
-package org.altusmetrum.AltosLib;
+package org.altusmetrum.altoslib_1;
 
 import java.util.*;
 import java.text.*;
@@ -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) {}
@@ -486,12 +496,13 @@ public class AltosConfigData implements Iterable<String> {
                link.printf("c s\nf\nv\n");
                read_link(link, "software-version");
                switch (log_format) {
-               case AltosLib.AO_LOG_FORMAT_TELEMETRY:
-               case AltosLib.AO_LOG_FORMAT_TELESCIENCE:
-                       break;
-               default:
+               case AltosLib.AO_LOG_FORMAT_FULL:
+               case AltosLib.AO_LOG_FORMAT_TINY:
+               case AltosLib.AO_LOG_FORMAT_MEGAMETRUM:
                        link.printf("l\n");
                        read_link(link, "done");
+               default:
+                       break;
                }
        }