summaryrefslogtreecommitdiff
path: root/altoslib
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2014-06-10 10:14:07 -0700
committerKeith Packard <keithp@keithp.com>2014-06-10 10:14:07 -0700
commit5f2029bd4e31289fb03e6af39abdbc16f8b8fa78 (patch)
tree98036a06945b3d4c75a21140d87fcbfd10b945a0 /altoslib
parentae1174317fc476e39077f7dc257ec08709c6b301 (diff)
altoslib/altosui/telegps: Switch TeleGPS config to motion/interval
TeleGPS had configurable boost-detect values; those have been replaced with a configurable stop-tracking motion limit and logging/telemetry interval value. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altoslib')
-rw-r--r--altoslib/AltosConfigData.java35
-rw-r--r--altoslib/AltosConfigValues.java24
2 files changed, 36 insertions, 23 deletions
diff --git a/altoslib/AltosConfigData.java b/altoslib/AltosConfigData.java
index 9462ae6f..563bef4b 100644
--- a/altoslib/AltosConfigData.java
+++ b/altoslib/AltosConfigData.java
@@ -82,7 +82,8 @@ public class AltosConfigData implements Iterable<String> {
public int stored_flight;
/* HAS_TRACKER */
- public int[] tracker_distances;
+ public int tracker_motion;
+ public int tracker_interval;
public static String get_string(String line, String label) throws ParseException {
if (line.startsWith(label)) {
@@ -107,15 +108,15 @@ public class AltosConfigData implements Iterable<String> {
throw new ParseException("mismatch", 0);
}
- public static int[] get_distances(String line, String label) throws NumberFormatException, ParseException {
+ public static int[] get_values(String line, String label) throws NumberFormatException, ParseException {
if (line.startsWith(label)) {
String tail = line.substring(label.length()).trim();
String[] tokens = tail.split("\\s+");
if (tokens.length > 1) {
- int[] distances = new int[2];
- distances[0] = Integer.parseInt(tokens[0]);
- distances[1] = Integer.parseInt(tokens[1]);
- return distances;
+ int[] values = new int[2];
+ values[0] = Integer.parseInt(tokens[0]);
+ values[1] = Integer.parseInt(tokens[1]);
+ return values;
}
}
throw new ParseException("mismatch", 0);
@@ -250,7 +251,8 @@ public class AltosConfigData implements Iterable<String> {
beep = -1;
- tracker_distances = null;
+ tracker_motion = -1;
+ tracker_interval = -1;
storage_size = -1;
storage_erase_unit = -1;
@@ -333,7 +335,11 @@ public class AltosConfigData implements Iterable<String> {
try { beep = get_int(line, "Beeper setting:"); } catch (Exception e) {}
/* HAS_TRACKER */
- try { tracker_distances = get_distances(line, "Tracker setting:"); } catch (Exception e) {}
+ try {
+ int[] values = get_values(line, "Tracker setting:");
+ tracker_motion = values[0];
+ tracker_interval = values[1];
+ } catch (Exception e) {}
/* Storage info replies */
try { storage_size = get_int(line, "Storage size:"); } catch (Exception e) {}
@@ -453,8 +459,10 @@ public class AltosConfigData implements Iterable<String> {
if (beep >= 0)
beep = source.beep();
/* HAS_TRACKER */
- if (tracker_distances != null)
- tracker_distances = source.tracker_distances();
+ if (tracker_motion >= 0)
+ tracker_motion = source.tracker_motion();
+ if (tracker_interval >= 0)
+ tracker_interval = source.tracker_interval();
}
public void set_values(AltosConfigValues dest) {
@@ -494,7 +502,8 @@ public class AltosConfigData implements Iterable<String> {
dest.set_pyros(null);
dest.set_aprs_interval(aprs_interval);
dest.set_beep(beep);
- dest.set_tracker_distances(tracker_distances);
+ dest.set_tracker_motion(tracker_motion);
+ dest.set_tracker_interval(tracker_interval);
}
public void save(AltosLink link, boolean remote) throws InterruptedException, TimeoutException {
@@ -566,8 +575,8 @@ public class AltosConfigData implements Iterable<String> {
link.printf("c b %d\n", beep);
/* HAS_TRACKER */
- if (tracker_distances != null)
- link.printf("c t %d %d\n", tracker_distances[0], tracker_distances[1]);
+ if (tracker_motion >= 0 && tracker_interval >= 0)
+ link.printf("c t %d %d\n", tracker_motion, tracker_interval);
link.printf("c w\n");
link.flush_output();
diff --git a/altoslib/AltosConfigValues.java b/altoslib/AltosConfigValues.java
index 6ca1f5c6..778f1222 100644
--- a/altoslib/AltosConfigValues.java
+++ b/altoslib/AltosConfigValues.java
@@ -27,23 +27,23 @@ public interface AltosConfigValues {
public abstract void set_main_deploy(int new_main_deploy);
- public abstract int main_deploy();
+ public abstract int main_deploy() throws AltosConfigDataException;
public abstract void set_apogee_delay(int new_apogee_delay);
- public abstract int apogee_delay();
+ public abstract int apogee_delay() throws AltosConfigDataException;
public abstract void set_apogee_lockout(int new_apogee_lockout);
- public abstract int apogee_lockout();
+ public abstract int apogee_lockout() throws AltosConfigDataException;
public abstract void set_radio_frequency(double new_radio_frequency);
- public abstract double radio_frequency();
+ public abstract double radio_frequency() throws AltosConfigDataException;
public abstract void set_radio_calibration(int new_radio_calibration);
- public abstract int radio_calibration();
+ public abstract int radio_calibration() throws AltosConfigDataException;
public abstract void set_radio_enable(int new_radio_enable);
@@ -57,7 +57,7 @@ public interface AltosConfigValues {
public abstract void set_flight_log_max_enabled(boolean enable);
- public abstract int flight_log_max();
+ public abstract int flight_log_max() throws AltosConfigDataException;
public abstract void set_flight_log_max_limit(int flight_log_max_limit);
@@ -73,15 +73,19 @@ public interface AltosConfigValues {
public abstract AltosPyro[] pyros() throws AltosConfigDataException;
- public abstract int aprs_interval();
+ public abstract int aprs_interval() throws AltosConfigDataException;
public abstract void set_aprs_interval(int new_aprs_interval);
- public abstract int beep();
+ public abstract int beep() throws AltosConfigDataException;
public abstract void set_beep(int new_beep);
- public abstract int[] tracker_distances();
+ public abstract int tracker_motion() throws AltosConfigDataException;
- public abstract void set_tracker_distances(int[] tracker_distances);
+ public abstract void set_tracker_motion(int tracker_motion);
+
+ public abstract int tracker_interval() throws AltosConfigDataException;
+
+ public abstract void set_tracker_interval(int tracker_motion);
}