Remove pyro wizard file from master
[fw/altos] / altosui / AltosConfigTDUI.java
index ca3657183e037f339cd46ed8e1a69cebc29484c0..529c2fa20ac1e74619145dcd2ae0ca33e03efd09 100644 (file)
@@ -3,7 +3,8 @@
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful, but
  * WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -21,8 +22,8 @@ import java.awt.*;
 import java.awt.event.*;
 import javax.swing.*;
 import javax.swing.event.*;
-import org.altusmetrum.altoslib_5.*;
-import org.altusmetrum.altosuilib_3.*;
+import org.altusmetrum.altoslib_11.*;
+import org.altusmetrum.altosuilib_11.*;
 
 public class AltosConfigTDUI
        extends AltosUIDialog
@@ -37,6 +38,7 @@ public class AltosConfigTDUI
        JLabel          frequency_label;
        JLabel          radio_calibration_label;
        JLabel          radio_frequency_label;
+       JLabel          rate_label;
 
        public boolean          dirty;
 
@@ -44,9 +46,9 @@ public class AltosConfigTDUI
        JLabel          product_value;
        JLabel          version_value;
        JLabel          serial_value;
-       JMenuBar        radio_frequency_menu_bar;
-       AltosFreqList   radio_frequency_value;
+       AltosUIFreqList radio_frequency_value;
        JLabel          radio_calibration_value;
+       AltosUIRateList rate_value;
 
        JButton         save;
        JButton         reset;
@@ -55,7 +57,6 @@ public class AltosConfigTDUI
 
        ActionListener  listener;
 
-
        /* A window listener to catch closing events and tell the config code */
        class ConfigListener extends WindowAdapter {
                AltosConfigTDUI ui;
@@ -167,11 +168,9 @@ public class AltosConfigTDUI
                c.anchor = GridBagConstraints.LINE_START;
                c.insets = ir;
                c.ipady = 5;
-               radio_frequency_value = new AltosFreqList(false);
+               radio_frequency_value = new AltosUIFreqList();
                radio_frequency_value.addItemListener(this);
-               radio_frequency_menu_bar = new JMenuBar();
-               radio_frequency_menu_bar.add(radio_frequency_value);
-               pane.add(radio_frequency_menu_bar, c);
+               pane.add(radio_frequency_value, c);
                radio_frequency_value.setToolTipText("Telemetry, RDF and packet frequency");
 
                /* Radio Calibration */
@@ -196,6 +195,28 @@ public class AltosConfigTDUI
                radio_calibration_value = new JLabel(String.format("%d", 1186611));
                pane.add(radio_calibration_value, c);
 
+               /* Telemetry Rate */
+               c = new GridBagConstraints();
+               c.gridx = 0; c.gridy = 7;
+               c.gridwidth = 4;
+               c.fill = GridBagConstraints.NONE;
+               c.anchor = GridBagConstraints.LINE_START;
+               c.insets = il;
+               c.ipady = 5;
+               rate_label = new JLabel("Telemetry Rate:");
+               pane.add(rate_label, c);
+
+               c = new GridBagConstraints();
+               c.gridx = 4; c.gridy = 7;
+               c.gridwidth = 4;
+               c.fill = GridBagConstraints.HORIZONTAL;
+               c.weightx = 1;
+               c.anchor = GridBagConstraints.LINE_START;
+               c.insets = ir;
+               c.ipady = 5;
+               rate_value = new AltosUIRateList();
+               pane.add(rate_value, c);
+
                /* Buttons */
                c = new GridBagConstraints();
                c.gridx = 0; c.gridy = 12;
@@ -311,7 +332,28 @@ public class AltosConfigTDUI
        }
 
        public void set_radio_frequency(double new_radio_frequency) {
-               radio_frequency_value.set_frequency(new_radio_frequency);
+               int i;
+               for (i = 0; i < radio_frequency_value.getItemCount(); i++) {
+                       AltosFrequency  f = (AltosFrequency) radio_frequency_value.getItemAt(i);
+
+                       if (f.close(new_radio_frequency)) {
+                               radio_frequency_value.setSelectedIndex(i);
+                               return;
+                       }
+               }
+               for (i = 0; i < radio_frequency_value.getItemCount(); i++) {
+                       AltosFrequency  f = (AltosFrequency) radio_frequency_value.getItemAt(i);
+
+                       if (new_radio_frequency < f.frequency)
+                               break;
+               }
+               String  description = String.format("%s serial %s",
+                                                   product_value.getText(),
+                                                   serial_value.getText());
+               AltosFrequency  new_frequency = new AltosFrequency(new_radio_frequency, description);
+               AltosPreferences.add_common_frequency(new_frequency);
+               radio_frequency_value.insertItemAt(new_frequency, i);
+               radio_frequency_value.setSelectedIndex(i);
        }
 
        public double radio_frequency() {
@@ -322,6 +364,14 @@ public class AltosConfigTDUI
                radio_calibration_value.setText(String.format("%d", calibration));
        }
 
+       public int telemetry_rate() {
+               return rate_value.getSelectedIndex();
+       }
+
+       public void set_telemetry_rate(int rate) {
+               rate_value.setSelectedIndex(rate);
+       }
+
        public void set_clean() {
                dirty = false;
        }