altos: Add config support for 2400 and 9600 baud telemetry rates
[fw/altos] / altosui / AltosConfigUI.java
index 6e1b47c21260abebfbc1dd5ed2f566d684ab630b..91c37fd530f5d19c6259c8e5866c525325051511 100644 (file)
@@ -59,7 +59,7 @@ public class AltosConfigUI
        JComboBox<String>       main_deploy_value;
        JComboBox<String>       apogee_delay_value;
        JComboBox<String>       apogee_lockout_value;
-       AltosFreqList           radio_frequency_value;
+       AltosUIFreqList         radio_frequency_value;
        JTextField              radio_calibration_value;
        JRadioButton            radio_enable_value;
        JComboBox<String>       aprs_interval_value;
@@ -432,12 +432,9 @@ public class AltosConfigUI
                c.anchor = GridBagConstraints.LINE_START;
                c.insets = ir;
                c.ipady = 5;
-               radio_frequency_value = new AltosFreqList();
+               radio_frequency_value = new AltosUIFreqList();
                radio_frequency_value.addItemListener(this);
-
-               JMenuBar menu_bar = new JMenuBar();
-               menu_bar.add(radio_frequency_value);
-               pane.add(menu_bar, c);
+               pane.add(radio_frequency_value, c);
                radio_frequency_value.setToolTipText("Telemetry, RDF and packet frequency");
                row++;
 
@@ -925,6 +922,8 @@ public class AltosConfigUI
        }
 
        public void units_changed(boolean imperial_units) {
+               boolean was_dirty = dirty;
+
                String v = main_deploy_value.getSelectedItem().toString();
                main_deploy_label.setText(get_main_deploy_label());
                set_main_deploy_values();
@@ -937,6 +936,9 @@ public class AltosConfigUI
                        set_tracker_motion_values();
                        set_tracker_motion((int) (AltosConvert.height.parse(motion, !imperial_units) + 0.5));
                }
+
+               if (!was_dirty)
+                       set_clean();
        }
 
        public void set_apogee_delay(int new_apogee_delay) {
@@ -1151,9 +1153,11 @@ public class AltosConfigUI
                if (tracker_motion < 0) {
                        tracker_motion_label.setVisible(false);
                        tracker_motion_value.setVisible(false);
+                       tracker_motion_value.setEnabled(false);
                } else {
                        tracker_motion_label.setVisible(true);
                        tracker_motion_value.setVisible(true);
+                       tracker_motion_value.setEnabled(true);
                        tracker_motion_value.setSelectedItem(AltosConvert.height.say(tracker_motion));
                }
        }
@@ -1166,9 +1170,11 @@ public class AltosConfigUI
                if (tracker_interval< 0) {
                        tracker_interval_label.setVisible(false);
                        tracker_interval_value.setVisible(false);
+                       tracker_interval_value.setEnabled(false);
                } else {
                        tracker_interval_label.setVisible(true);
                        tracker_interval_value.setVisible(true);
+                       tracker_interval_value.setEnabled(true);
                        tracker_interval_value.setSelectedItem(String.format("%d", tracker_interval));
                }
        }