X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altosui%2FAltosConfigUI.java;h=599ed0512bca0c869d1dc38c48ec3e98d48e8022;hp=2c3435c18a47494834663d00c1626c9041399dc8;hb=1ed6b13e87c1cc2d6618b6ba3a293ea6e3b5752e;hpb=b26e837a6f18641aae9372aab22168849ff10812 diff --git a/altosui/AltosConfigUI.java b/altosui/AltosConfigUI.java index 2c3435c1..599ed051 100644 --- a/altosui/AltosConfigUI.java +++ b/altosui/AltosConfigUI.java @@ -22,9 +22,10 @@ import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import org.altusmetrum.AltosLib.*; +import org.altusmetrum.altosuilib.*; public class AltosConfigUI - extends AltosDialog + extends AltosUIDialog implements ActionListener, ItemListener, DocumentListener, AltosConfigValues { @@ -39,6 +40,7 @@ public class AltosConfigUI JLabel radio_calibration_label; JLabel radio_frequency_label; JLabel radio_enable_label; + JLabel aprs_interval_label; JLabel flight_log_max_label; JLabel ignite_mode_label; JLabel pad_orientation_label; @@ -56,6 +58,7 @@ public class AltosConfigUI AltosFreqList radio_frequency_value; JTextField radio_calibration_value; JRadioButton radio_enable_value; + JComboBox aprs_interval_value; JComboBox flight_log_max_value; JComboBox ignite_mode_value; JComboBox pad_orientation_value; @@ -97,6 +100,13 @@ public class AltosConfigUI "Redundant Main", }; + static String[] aprs_interval_values = { + "Disabled", + "2", + "5", + "10" + }; + static String[] pad_orientation_values = { "Antenna Up", "Antenna Down", @@ -141,6 +151,13 @@ public class AltosConfigUI radio_enable_value.setToolTipText("Firmware version does not support disabling radio"); } + void set_aprs_interval_tool_tip() { + if (aprs_interval_value.isEnabled()) + aprs_interval_value.setToolTipText("Enable APRS and set the interval between APRS reports"); + else + aprs_interval_value.setToolTipText("Hardware doesn't support APRS"); + } + void set_flight_log_max_tool_tip() { if (flight_log_max_value.isEnabled()) flight_log_max_value.setToolTipText("Size reserved for each flight log (in kB)"); @@ -393,7 +410,7 @@ public class AltosConfigUI c.anchor = GridBagConstraints.LINE_START; c.insets = il; c.ipady = 5; - radio_enable_label = new JLabel("Telemetry/RDF Enable:"); + radio_enable_label = new JLabel("Telemetry/RDF/APRS Enable:"); pane.add(radio_enable_label, c); c = new GridBagConstraints(); @@ -410,6 +427,32 @@ public class AltosConfigUI set_radio_enable_tool_tip(); row++; + /* APRS interval */ + 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_interval_label = new JLabel("APRS Interval(s):"); + pane.add(aprs_interval_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_interval_value = new JComboBox(aprs_interval_values); + aprs_interval_value.setEditable(true); + aprs_interval_value.addItemListener(this); + pane.add(aprs_interval_value, c); + set_aprs_interval_tool_tip(); + row++; + /* Callsign */ c = new GridBagConstraints(); c.gridx = 0; c.gridy = row; @@ -843,4 +886,24 @@ public class AltosConfigUI pyros = pyro_ui.get_pyros(); return pyros; } + + public void set_aprs_interval(int new_aprs_interval) { + String s; + + if (new_aprs_interval <= 0) + s = "Disabled"; + else + s = Integer.toString(new_aprs_interval); + aprs_interval_value.setSelectedItem(s); + aprs_interval_value.setEnabled(new_aprs_interval >= 0); + set_aprs_interval_tool_tip(); + } + + public int aprs_interval() { + String s = aprs_interval_value.getSelectedItem().toString(); + + if (s.equals("Disabled")) + return 0; + return Integer.parseInt(s); + } }