summaryrefslogtreecommitdiff
path: root/telegps/TeleGPSConfigUI.java
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2015-03-02 21:06:02 -0800
committerKeith Packard <keithp@keithp.com>2015-03-02 21:06:02 -0800
commite637367e8b940e1642a07b3b7c99147561de9cf1 (patch)
tree46ae4d20be34efc84d267d0e139a744a7b0e9035 /telegps/TeleGPSConfigUI.java
parent2614d20b324ab215ef22f178e3635d48e757fa9b (diff)
altosui/telegps: Add config option for APRS format
Allow configuration of APRS compressed/uncompressed Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'telegps/TeleGPSConfigUI.java')
-rw-r--r--telegps/TeleGPSConfigUI.java60
1 files changed, 55 insertions, 5 deletions
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();
+ }
}