diff options
author | Keith Packard <keithp@keithp.com> | 2012-03-27 11:58:39 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2012-03-27 11:58:39 -0700 |
commit | d77a4ea206d627635159f35c76c744687d4e633b (patch) | |
tree | b8dbf66c2cfeb7817c6ff0e443b6f1a63f910975 /altosui/AltosFlightUI.java | |
parent | d8ebb83e64d66fa159e75aa560d39d80bb6d9d04 (diff) |
altosui: Show only supported telemetry version
Make it clear in the UI which telemetry versions are supported,
providing the combobox only for new firmware which supports all versions.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altosui/AltosFlightUI.java')
-rw-r--r-- | altosui/AltosFlightUI.java | 74 |
1 files changed, 48 insertions, 26 deletions
diff --git a/altosui/AltosFlightUI.java b/altosui/AltosFlightUI.java index dcf85277..d99da43d 100644 --- a/altosui/AltosFlightUI.java +++ b/altosui/AltosFlightUI.java @@ -169,6 +169,7 @@ public class AltosFlightUI extends AltosFrame implements AltosFlightDisplay, Alt Container bag; AltosFreqList frequencies; JComboBox telemetries; + JLabel telemetry; ActionListener show_timer; @@ -216,32 +217,53 @@ public class AltosFlightUI extends AltosFrame implements AltosFlightDisplay, Alt bag.add (frequencies, c); // Telemetry format menu - telemetries = new JComboBox(); - for (int i = 1; i <= Altos.ao_telemetry_max; i++) - telemetries.addItem(Altos.telemetry_name(i)); - int telemetry = AltosPreferences.telemetry(serial); - if (telemetry <= Altos.ao_telemetry_off || - telemetry > Altos.ao_telemetry_max) - telemetry = Altos.ao_telemetry_standard; - telemetries.setSelectedIndex(telemetry - 1); - telemetries.setMaximumRowCount(Altos.ao_telemetry_max); - telemetries.setPreferredSize(null); - telemetries.revalidate(); - telemetries.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - int telemetry = telemetries.getSelectedIndex() + 1; - reader.set_telemetry(telemetry); - reader.save_telemetry(); - } - }); - c.gridx = 1; - c.gridy = 0; - c.weightx = 0; - c.weighty = 0; - c.fill = GridBagConstraints.NONE; - c.anchor = GridBagConstraints.WEST; - bag.add (telemetries, c); - c.insets = new Insets(0, 0, 0, 0); + if (reader.supports_telemetry(Altos.ao_telemetry_standard)) { + telemetries = new JComboBox(); + for (int i = 1; i <= Altos.ao_telemetry_max; i++) + telemetries.addItem(Altos.telemetry_name(i)); + int telemetry = AltosPreferences.telemetry(serial); + if (telemetry <= Altos.ao_telemetry_off || + telemetry > Altos.ao_telemetry_max) + telemetry = Altos.ao_telemetry_standard; + telemetries.setSelectedIndex(telemetry - 1); + telemetries.setMaximumRowCount(Altos.ao_telemetry_max); + telemetries.setPreferredSize(null); + telemetries.revalidate(); + telemetries.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + int telemetry = telemetries.getSelectedIndex() + 1; + reader.set_telemetry(telemetry); + reader.save_telemetry(); + } + }); + c.gridx = 1; + c.gridy = 0; + c.weightx = 0; + c.weighty = 0; + c.fill = GridBagConstraints.NONE; + c.anchor = GridBagConstraints.WEST; + bag.add (telemetries, c); + c.insets = new Insets(0, 0, 0, 0); + } else { + String version; + + if (reader.supports_telemetry(Altos.ao_telemetry_0_9)) + version = "Telemetry: 0.9"; + else if (reader.supports_telemetry(Altos.ao_telemetry_0_8)) + version = "Telemetry: 0.8"; + else + version = "Telemetry: None"; + + telemetry = new JLabel(version); + c.gridx = 1; + c.gridy = 0; + c.weightx = 0; + c.weighty = 0; + c.fill = GridBagConstraints.NONE; + c.anchor = GridBagConstraints.WEST; + bag.add (telemetry, c); + c.insets = new Insets(0, 0, 0, 0); + } } /* Flight status is always visible */ |