Merge branch 'master' into micropeak-logging
[fw/altos] / altoslib / AltosConfigData.java
index 515ff480e705a41452040e86bd4514fa97f9f6e2..99b8e39d2042e4279605294acafb6c223d72de5d 100644 (file)
@@ -67,6 +67,9 @@ public class AltosConfigData implements Iterable<String> {
        public int              npyro;
        public int              pyro;
 
+       /* HAS_APRS */
+       public int              aprs_interval;
+
        /* Storage info replies */
        public int      storage_size;
        public int      storage_erase_unit;
@@ -189,6 +192,8 @@ public class AltosConfigData implements Iterable<String> {
                npyro = 0;
                pyros = null;
 
+               aprs_interval = -1;
+
                storage_size = -1;
                storage_erase_unit = -1;
                stored_flight = -1;
@@ -262,6 +267,9 @@ public class AltosConfigData implements Iterable<String> {
                        } catch (Exception e) {}
                }
 
+               /* HAS_APRS */
+               try { aprs_interval = get_int(line, "APRS interval:"); } catch (Exception e) {}
+
                /* 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) {}
@@ -367,6 +375,9 @@ public class AltosConfigData implements Iterable<String> {
                /* AO_PYRO_NUM */
                if (npyro > 0)
                        pyros = source.pyros();
+
+               if (aprs_interval >= 0)
+                       aprs_interval = source.aprs_interval();
        }
 
        public void set_values(AltosConfigValues dest) {
@@ -399,6 +410,7 @@ public class AltosConfigData implements Iterable<String> {
                        dest.set_pyros(pyros);
                else
                        dest.set_pyros(null);
+               dest.set_aprs_interval(aprs_interval);
        }
 
        public void save(AltosLink link, boolean remote) throws InterruptedException, TimeoutException {
@@ -461,6 +473,10 @@ public class AltosConfigData implements Iterable<String> {
                        }
                }
 
+               /* HAS_APRS */
+               if (aprs_interval >= 0)
+                       link.printf("c A %d\n", aprs_interval);
+
                link.printf("c w\n");
                link.flush_output();
        }
@@ -469,14 +485,16 @@ 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_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;
                }
        }
 
-}
\ No newline at end of file
+}