summaryrefslogtreecommitdiff
path: root/altosui/AltosConfigUI.java
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2014-05-02 13:53:08 -0700
committerKeith Packard <keithp@keithp.com>2014-05-02 13:53:08 -0700
commit2dfc4bc92b11252f17103f28198a702a3fdc2b2d (patch)
tree8bceb5e35f4c40a8767da1926c0044dcfc36ee1c /altosui/AltosConfigUI.java
parent027b1470c7a2d007eaab5c8d49f772b0c7559b80 (diff)
altosui: Add configuration UI for beeper tone
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altosui/AltosConfigUI.java')
-rw-r--r--altosui/AltosConfigUI.java62
1 files changed, 62 insertions, 0 deletions
diff --git a/altosui/AltosConfigUI.java b/altosui/AltosConfigUI.java
index 656b0b6f..0a5291ea 100644
--- a/altosui/AltosConfigUI.java
+++ b/altosui/AltosConfigUI.java
@@ -45,6 +45,7 @@ public class AltosConfigUI
JLabel ignite_mode_label;
JLabel pad_orientation_label;
JLabel callsign_label;
+ JLabel beep_label;
public boolean dirty;
@@ -63,6 +64,7 @@ public class AltosConfigUI
JComboBox ignite_mode_value;
JComboBox pad_orientation_value;
JTextField callsign_value;
+ JComboBox beep_value;
JButton pyro;
@@ -112,6 +114,12 @@ public class AltosConfigUI
"10"
};
+ static String[] beep_values = {
+ "3750",
+ "4000",
+ "4250",
+ };
+
static String[] pad_orientation_values = {
"Antenna Up",
"Antenna Down",
@@ -204,6 +212,13 @@ public class AltosConfigUI
}
}
+ void set_beep_tool_tip() {
+ if (beep_value.isEnabled())
+ beep_value.setToolTipText("What frequency the beeper will sound at");
+ else
+ beep_value.setToolTipText("Older firmware could not select beeper frequency");
+ }
+
/* Build the UI using a grid bag */
public AltosConfigUI(JFrame in_owner, boolean remote) {
super (in_owner, "Configure Flight Computer", false);
@@ -569,6 +584,32 @@ public class AltosConfigUI
set_pad_orientation_tool_tip();
row++;
+ /* Beeper */
+ 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;
+ beep_label = new JLabel("Beeper Frequency:");
+ pane.add(beep_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;
+ beep_value = new JComboBox(beep_values);
+ beep_value.setEditable(true);
+ beep_value.addItemListener(this);
+ pane.add(beep_value, c);
+ set_beep_tool_tip();
+ row++;
+
/* Pyro channels */
c = new GridBagConstraints();
c.gridx = 4; c.gridy = row;
@@ -908,6 +949,27 @@ public class AltosConfigUI
return -1;
}
+ public void set_beep(int new_beep) {
+ int new_freq = (int) Math.floor (AltosConvert.beep_value_to_freq(new_beep) + 0.5);
+ System.out.printf("set_beep %d %d\n", new_beep, new_freq);
+ for (int i = 0; i < beep_values.length; i++)
+ if (new_beep == AltosConvert.beep_freq_to_value(Integer.parseInt(beep_values[i]))) {
+ beep_value.setSelectedIndex(i);
+ set_beep_tool_tip();
+ return;
+ }
+ beep_value.setSelectedItem(String.format("%d", new_freq));
+ beep_value.setEnabled(new_beep >= 0);
+ set_beep_tool_tip();
+ }
+
+ public int beep() {
+ if (beep_value.isEnabled())
+ return AltosConvert.beep_freq_to_value(Integer.parseInt(beep_value.getSelectedItem().toString()));
+ else
+ return -1;
+ }
+
public void set_pyros(AltosPyro[] new_pyros) {
pyros = new_pyros;
pyro.setVisible(pyros != null);