update turnon tools
[fw/altos] / altoslib / AltosConfigData.java
index 563bef4b71ceaecc4804f35ae14a4b0f2cafd698..847436cd0b0abc2d68a2fc0b1e7dec18b6686a91 100644 (file)
@@ -15,7 +15,7 @@
  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
  */
 
-package org.altusmetrum.altoslib_4;
+package org.altusmetrum.altoslib_5;
 
 import java.util.*;
 import java.text.*;
@@ -46,6 +46,7 @@ public class AltosConfigData implements Iterable<String> {
        public String   callsign;
        public int      radio_enable;
        public int      radio_calibration;
+       public int      telemetry_rate;
        /* Old HAS_RADIO values */
        public int      radio_channel;
        public int      radio_setting;
@@ -67,9 +68,11 @@ public class AltosConfigData implements Iterable<String> {
        public AltosPyro[]      pyros;
        public int              npyro;
        public int              pyro;
+       public double           pyro_firing_time;
 
        /* HAS_APRS */
        public int              aprs_interval;
+       public int              aprs_ssid;
 
        /* HAS_BEEP */
        public int              beep;
@@ -233,6 +236,7 @@ public class AltosConfigData implements Iterable<String> {
                radio_calibration = -1;
                radio_channel = -1;
                radio_setting = -1;
+               telemetry_rate = -1;
 
                accel_cal_plus = -1;
                accel_cal_minus = -1;
@@ -246,8 +250,10 @@ public class AltosConfigData implements Iterable<String> {
                pyro = 0;
                npyro = 0;
                pyros = null;
+               pyro_firing_time = -1;
 
                aprs_interval = -1;
+               aprs_ssid = -1;
 
                beep = -1;
 
@@ -288,6 +294,7 @@ public class AltosConfigData implements Iterable<String> {
                try { callsign = get_string(line, "Callsign:"); } catch (Exception e) {}
                try { radio_enable = get_int(line, "Radio enable:"); } catch (Exception e) {}
                try { radio_calibration = get_int(line, "Radio cal:"); } catch (Exception e) {}
+               try { telemetry_rate = get_int(line, "Telemetry rate:"); } catch (Exception e) {}
 
                /* Old HAS_RADIO values */
                try { radio_channel = get_int(line, "Radio channel:"); } catch (Exception e) {}
@@ -327,9 +334,11 @@ public class AltosConfigData implements Iterable<String> {
                                        pyros[pyro++] = p;
                        } catch (Exception e) {}
                }
+               try { pyro_firing_time = get_int(line, "Pyro time:") / 100.0; } catch (Exception e) {}
 
                /* HAS_APRS */
                try { aprs_interval = get_int(line, "APRS interval:"); } catch (Exception e) {}
+               try { aprs_ssid = get_int(line, "APRS SSID:"); } catch (Exception e) {}
 
                /* HAS_BEEP */
                try { beep = get_int(line, "Beeper setting:"); } catch (Exception e) {}
@@ -434,6 +443,8 @@ public class AltosConfigData implements Iterable<String> {
                        callsign = source.callsign();
                if (radio_calibration >= 0)
                        radio_calibration = source.radio_calibration();
+               if (telemetry_rate >= 0)
+                       telemetry_rate = source.telemetry_rate();
 
                /* HAS_ACCEL */
                if (pad_orientation >= 0)
@@ -450,10 +461,14 @@ public class AltosConfigData implements Iterable<String> {
                /* AO_PYRO_NUM */
                if (npyro > 0)
                        pyros = source.pyros();
+               if (pyro_firing_time >= 0)
+                       pyro_firing_time = source.pyro_firing_time();
 
                /* HAS_APRS */
                if (aprs_interval >= 0)
                        aprs_interval = source.aprs_interval();
+               if (aprs_ssid >= 0)
+                       aprs_ssid = source.aprs_ssid();
 
                /* HAS_BEEP */
                if (beep >= 0)
@@ -474,6 +489,7 @@ public class AltosConfigData implements Iterable<String> {
                dest.set_apogee_lockout(apogee_lockout);
                dest.set_radio_calibration(radio_calibration);
                dest.set_radio_frequency(frequency());
+               dest.set_telemetry_rate(telemetry_rate);
                boolean max_enabled = true;
 
                if (log_space() == 0)
@@ -500,7 +516,9 @@ public class AltosConfigData implements Iterable<String> {
                        dest.set_pyros(pyros);
                else
                        dest.set_pyros(null);
+               dest.set_pyro_firing_time(pyro_firing_time);
                dest.set_aprs_interval(aprs_interval);
+               dest.set_aprs_ssid(aprs_ssid);
                dest.set_beep(beep);
                dest.set_tracker_motion(tracker_motion);
                dest.set_tracker_interval(tracker_interval);
@@ -542,6 +560,9 @@ public class AltosConfigData implements Iterable<String> {
                if (radio_enable >= 0)
                        link.printf("c e %d\n", radio_enable);
 
+               if (telemetry_rate >= 0)
+                       link.printf("c T %d\n", telemetry_rate);
+
                /* HAS_ACCEL */
                /* UI doesn't support accel cal */
                if (pad_orientation >= 0)
@@ -565,10 +586,14 @@ public class AltosConfigData implements Iterable<String> {
                                                   pyros[p].toString());
                        }
                }
+               if (pyro_firing_time >= 0)
+                       link.printf("c I %d\n", (int) (pyro_firing_time * 100.0 + 0.5));
 
                /* HAS_APRS */
                if (aprs_interval >= 0)
                        link.printf("c A %d\n", aprs_interval);
+               if (aprs_ssid >= 0)
+                       link.printf("c S %d\n", aprs_ssid);
 
                /* HAS_BEEP */
                if (beep >= 0)