summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--altoslib/AltosConfigData.java8
-rw-r--r--altoslib/AltosConfigValues.java4
-rw-r--r--altoslib/AltosLib.java7
-rw-r--r--altosui/AltosConfigUI.java62
-rw-r--r--telegps/TeleGPSConfigUI.java60
5 files changed, 130 insertions, 11 deletions
diff --git a/altoslib/AltosConfigData.java b/altoslib/AltosConfigData.java
index d8f4d945..0ffdcf60 100644
--- a/altoslib/AltosConfigData.java
+++ b/altoslib/AltosConfigData.java
@@ -75,6 +75,7 @@ public class AltosConfigData implements Iterable<String> {
/* HAS_APRS */
public int aprs_interval;
public int aprs_ssid;
+ public int aprs_format;
/* HAS_BEEP */
public int beep;
@@ -270,6 +271,7 @@ public class AltosConfigData implements Iterable<String> {
aprs_interval = -1;
aprs_ssid = -1;
+ aprs_format = -1;
beep = -1;
@@ -370,6 +372,7 @@ public class AltosConfigData implements Iterable<String> {
/* HAS_APRS */
try { aprs_interval = get_int(line, "APRS interval:"); } catch (Exception e) {}
try { aprs_ssid = get_int(line, "APRS SSID:"); } catch (Exception e) {}
+ try { aprs_format = get_int(line, "APRS format:"); } catch (Exception e) {}
/* HAS_BEEP */
try { beep = get_int(line, "Beeper setting:"); } catch (Exception e) {}
@@ -518,6 +521,8 @@ public class AltosConfigData implements Iterable<String> {
aprs_interval = source.aprs_interval();
if (aprs_ssid >= 0)
aprs_ssid = source.aprs_ssid();
+ if (aprs_format >= 0)
+ aprs_format = source.aprs_format();
/* HAS_BEEP */
if (beep >= 0)
@@ -572,6 +577,7 @@ public class AltosConfigData implements Iterable<String> {
dest.set_pyro_firing_time(pyro_firing_time);
dest.set_aprs_interval(aprs_interval);
dest.set_aprs_ssid(aprs_ssid);
+ dest.set_aprs_format(aprs_format);
dest.set_beep(beep);
dest.set_tracker_motion(tracker_motion);
dest.set_tracker_interval(tracker_interval);
@@ -674,6 +680,8 @@ public class AltosConfigData implements Iterable<String> {
link.printf("c A %d\n", aprs_interval);
if (aprs_ssid >= 0)
link.printf("c S %d\n", aprs_ssid);
+ if (aprs_format >= 0)
+ link.printf("c C %d\n", aprs_format);
/* HAS_BEEP */
if (beep >= 0)
diff --git a/altoslib/AltosConfigValues.java b/altoslib/AltosConfigValues.java
index cfe9fc8b..3f26a078 100644
--- a/altoslib/AltosConfigValues.java
+++ b/altoslib/AltosConfigValues.java
@@ -91,6 +91,10 @@ public interface AltosConfigValues {
public abstract void set_aprs_ssid(int new_aprs_ssid);
+ public abstract int aprs_format() throws AltosConfigDataException;
+
+ public abstract void set_aprs_format(int new_aprs_format);
+
public abstract int beep() throws AltosConfigDataException;
public abstract void set_beep(int new_beep);
diff --git a/altoslib/AltosLib.java b/altoslib/AltosLib.java
index b19f9f52..405a3acc 100644
--- a/altoslib/AltosLib.java
+++ b/altoslib/AltosLib.java
@@ -190,6 +190,13 @@ public class AltosLib {
38400, 9600, 2400
};
+ public static final int ao_aprs_format_compressed = 0;
+ public static final int ao_aprs_format_uncompressed = 1;
+
+ public static final String[] ao_aprs_format_name = {
+ "Compressed", "Uncompressed"
+ };
+
public static final String launch_sites_url = "http://www.altusmetrum.org/AltOS/launch-sites.txt";
// public static final String launch_sites_url = "file:///home/keithp/misc/text/altusmetrum/AltOS/launch-sites.txt";
diff --git a/altosui/AltosConfigUI.java b/altosui/AltosConfigUI.java
index 54f06065..b072ede7 100644
--- a/altosui/AltosConfigUI.java
+++ b/altosui/AltosConfigUI.java
@@ -43,6 +43,7 @@ public class AltosConfigUI
JLabel rate_label;
JLabel aprs_interval_label;
JLabel aprs_ssid_label;
+ JLabel aprs_format_label;
JLabel flight_log_max_label;
JLabel ignite_mode_label;
JLabel pad_orientation_label;
@@ -66,6 +67,7 @@ public class AltosConfigUI
AltosUIRateList rate_value;
JComboBox<String> aprs_interval_value;
JComboBox<Integer> aprs_ssid_value;
+ JComboBox<String> aprs_format_value;
JComboBox<String> flight_log_max_value;
JComboBox<String> ignite_mode_value;
JComboBox<String> pad_orientation_value;
@@ -218,11 +220,20 @@ public class AltosConfigUI
void set_aprs_ssid_tool_tip() {
if (aprs_ssid_value.isEnabled())
- aprs_interval_value.setToolTipText("Set the APRS SSID (secondary station identifier)");
- else if (aprs_interval_value.isEnabled())
- aprs_interval_value.setToolTipText("Software version doesn't support setting the APRS SSID");
+ aprs_ssid_value.setToolTipText("Set the APRS SSID (secondary station identifier)");
+ else if (aprs_ssid_value.isEnabled())
+ aprs_ssid_value.setToolTipText("Software version doesn't support setting the APRS SSID");
else
- aprs_interval_value.setToolTipText("Hardware doesn't support APRS");
+ aprs_ssid_value.setToolTipText("Hardware doesn't support APRS");
+ }
+
+ void set_aprs_format_tool_tip() {
+ if (aprs_format_value.isEnabled())
+ aprs_format_value.setToolTipText("Set the APRS format (compressed/uncompressed)");
+ else if (aprs_format_value.isEnabled())
+ aprs_format_value.setToolTipText("Software version doesn't support setting the APRS format");
+ else
+ aprs_format_value.setToolTipText("Hardware doesn't support APRS");
}
void set_flight_log_max_tool_tip() {
@@ -577,6 +588,33 @@ public class AltosConfigUI
set_aprs_ssid_tool_tip();
row++;
+ /* APRS format */
+ c = new GridBagConstraints();
+ c.gridx = 0; c.gridy = row;
+ c.gridwidth = 4;
+ c.fill = GridBagConstraints.NONE;
+ c.anchor = GridBagConstraints.LINE_START;
+ c.insets = il;
+ c.ipady = 5;
+ aprs_format_label = new JLabel("APRS format:");
+ pane.add(aprs_format_label, c);
+
+ c = new GridBagConstraints();
+ c.gridx = 4; c.gridy = row;
+ c.gridwidth = 4;
+ c.fill = GridBagConstraints.HORIZONTAL;
+ c.weightx = 1;
+ c.anchor = GridBagConstraints.LINE_START;
+ c.insets = ir;
+ c.ipady = 5;
+ aprs_format_value = new JComboBox<String>(AltosLib.ao_aprs_format_name);
+ aprs_format_value.setEditable(false);
+ aprs_format_value.addItemListener(this);
+ aprs_format_value.setMaximumRowCount(AltosLib.ao_aprs_format_name.length);
+ pane.add(aprs_format_value, c);
+ set_aprs_format_tool_tip();
+ row++;
+
/* Callsign */
c = new GridBagConstraints();
c.gridx = 0; c.gridy = row;
@@ -943,7 +981,7 @@ public class AltosConfigUI
}
String get_main_deploy_label() {
- return String.format("Main Deploy Altitude(%s):", AltosConvert.height.show_units());
+ return String.format("Main Deploy Altitude(%s):", AltosConvert.height.show_units_name(AltosLib.MISSING));
}
String[] main_deploy_values() {
@@ -1207,7 +1245,7 @@ public class AltosConfigUI
}
String get_tracker_motion_label() {
- return String.format("Logging Trigger Motion (%s):", AltosConvert.height.show_units());
+ return String.format("Logging Trigger Motion (%s):", AltosConvert.height.show_units_name(AltosLib.MISSING));
}
void set_tracker_tool_tip() {
@@ -1313,4 +1351,16 @@ public class AltosConfigUI
Integer i = (Integer) aprs_ssid_value.getSelectedItem();
return i;
}
+
+ public void set_aprs_format(int new_aprs_format) {
+ aprs_format_value.setVisible(new_aprs_format >= 0);
+ aprs_format_label.setVisible(new_aprs_format >= 0);
+
+ aprs_format_value.setSelectedIndex(Math.max(0,new_aprs_format));
+ set_aprs_format_tool_tip();
+ }
+
+ public int aprs_format() throws AltosConfigDataException {
+ return aprs_format_value.getSelectedIndex();
+ }
}
diff --git a/telegps/TeleGPSConfigUI.java b/telegps/TeleGPSConfigUI.java
index 5e700b72..0189a809 100644
--- a/telegps/TeleGPSConfigUI.java
+++ b/telegps/TeleGPSConfigUI.java
@@ -40,6 +40,7 @@ public class TeleGPSConfigUI
JLabel rate_label;
JLabel aprs_interval_label;
JLabel aprs_ssid_label;
+ JLabel aprs_format_label;
JLabel flight_log_max_label;
JLabel callsign_label;
JLabel tracker_motion_label;
@@ -57,6 +58,7 @@ public class TeleGPSConfigUI
AltosUIRateList rate_value;
JComboBox<String> aprs_interval_value;
JComboBox<Integer> aprs_ssid_value;
+ JComboBox<String> aprs_format_value;
JComboBox<String> flight_log_max_value;
JTextField callsign_value;
JComboBox<String> tracker_motion_value;
@@ -165,11 +167,20 @@ public class TeleGPSConfigUI
void set_aprs_ssid_tool_tip() {
if (aprs_ssid_value.isEnabled())
- aprs_interval_value.setToolTipText("Set the APRS SSID (secondary station identifier)");
- else if (aprs_interval_value.isEnabled())
- aprs_interval_value.setToolTipText("Software version doesn't support setting the APRS SSID");
+ aprs_ssid_value.setToolTipText("Set the APRS SSID (secondary station identifier)");
+ else if (aprs_ssid_value.isEnabled())
+ aprs_ssid_value.setToolTipText("Software version doesn't support setting the APRS SSID");
else
- aprs_interval_value.setToolTipText("Hardware doesn't support APRS");
+ aprs_ssid_value.setToolTipText("Hardware doesn't support APRS");
+ }
+
+ void set_aprs_format_tool_tip() {
+ if (aprs_format_value.isEnabled())
+ aprs_format_value.setToolTipText("Set the APRS format (compressed/uncompressed)");
+ else if (aprs_format_value.isEnabled())
+ aprs_format_value.setToolTipText("Software version doesn't support setting the APRS format");
+ else
+ aprs_format_value.setToolTipText("Hardware doesn't support APRS");
}
void set_flight_log_max_tool_tip() {
@@ -413,6 +424,33 @@ public class TeleGPSConfigUI
set_aprs_ssid_tool_tip();
row++;
+ /* APRS format */
+ c = new GridBagConstraints();
+ c.gridx = 0; c.gridy = row;
+ c.gridwidth = 4;
+ c.fill = GridBagConstraints.NONE;
+ c.anchor = GridBagConstraints.LINE_START;
+ c.insets = il;
+ c.ipady = 5;
+ aprs_format_label = new JLabel("APRS format:");
+ pane.add(aprs_format_label, c);
+
+ c = new GridBagConstraints();
+ c.gridx = 4; c.gridy = row;
+ c.gridwidth = 4;
+ c.fill = GridBagConstraints.HORIZONTAL;
+ c.weightx = 1;
+ c.anchor = GridBagConstraints.LINE_START;
+ c.insets = ir;
+ c.ipady = 5;
+ aprs_format_value = new JComboBox<String>(AltosLib.ao_aprs_format_name);
+ aprs_format_value.setEditable(false);
+ aprs_format_value.addItemListener(this);
+ aprs_format_value.setMaximumRowCount(AltosLib.ao_aprs_format_name.length);
+ pane.add(aprs_format_value, c);
+ set_aprs_format_tool_tip();
+ row++;
+
/* Callsign */
c = new GridBagConstraints();
c.gridx = 0; c.gridy = row;
@@ -824,7 +862,7 @@ public class TeleGPSConfigUI
}
String get_tracker_motion_label() {
- return String.format("Logging Trigger Motion (%s):", AltosConvert.height.show_units());
+ return String.format("Logging Trigger Motion (%s):", AltosConvert.height.show_units_name(AltosLib.MISSING));
}
void set_tracker_tool_tip() {
@@ -894,4 +932,16 @@ public class TeleGPSConfigUI
Integer i = (Integer) aprs_ssid_value.getSelectedItem();
return i;
}
+
+ public void set_aprs_format(int new_aprs_format) {
+ aprs_format_value.setVisible(new_aprs_format >= 0);
+ aprs_format_label.setVisible(new_aprs_format >= 0);
+
+ aprs_format_value.setSelectedIndex(Math.max(0,new_aprs_format));
+ set_aprs_format_tool_tip();
+ }
+
+ public int aprs_format() throws AltosConfigDataException {
+ return aprs_format_value.getSelectedIndex();
+ }
}