Change AltosLib to altoslib
[fw/altos] / altosui / AltosConfig.java
index 92191564e395219270cb1cf1795aa078b664f36e..c4dba735184b23d204c8e4ebe8bc26ccdc0d58b9 100644 (file)
@@ -21,8 +21,9 @@ import java.awt.event.*;
 import javax.swing.*;
 import java.io.*;
 import java.util.concurrent.*;
-import org.altusmetrum.AltosLib.*;
 import java.text.*;
+import org.altusmetrum.altoslib.*;
+import org.altusmetrum.altosuilib.*;
 
 public class AltosConfig implements ActionListener {
 
@@ -78,43 +79,8 @@ public class AltosConfig implements ActionListener {
                        serial_line.stop_remote();
        }
 
-       int log_limit() {
-               if (data.storage_size > 0 && data.storage_erase_unit > 0) {
-                       int     log_limit = data.storage_size - data.storage_erase_unit;
-                       if (log_limit > 0)
-                               return log_limit / 1024;
-               }
-               return 1024;
-       }
-
        void update_ui() {
-               config_ui.set_serial(data.serial);
-               config_ui.set_product(data.product);
-               config_ui.set_version(data.version);
-               config_ui.set_main_deploy(data.main_deploy);
-               config_ui.set_apogee_delay(data.apogee_delay);
-               config_ui.set_apogee_lockout(data.apogee_lockout);
-               config_ui.set_radio_calibration(data.radio_calibration);
-               config_ui.set_radio_frequency(frequency());
-               boolean max_enabled = true;
-               switch (data.log_format) {
-               case Altos.AO_LOG_FORMAT_TINY:
-                       max_enabled = false;
-                       break;
-               default:
-                       if (data.stored_flight >= 0)
-                               max_enabled = false;
-                       break;
-               }
-               config_ui.set_flight_log_max_enabled(max_enabled);
-               config_ui.set_radio_enable(data.radio_enable);
-               config_ui.set_flight_log_max_limit(log_limit());
-               config_ui.set_flight_log_max(data.flight_log_max);
-               config_ui.set_ignite_mode(data.ignite_mode);
-               config_ui.set_pad_orientation(data.pad_orientation);
-               config_ui.set_callsign(data.callsign);
-               config_ui.set_pyros(data.pyros);
-               config_ui.set_has_pyro(data.npyro > 0);
+               data.set_values(config_ui);
                config_ui.set_clean();
                if (!made_visible) {
                        made_visible = true;
@@ -170,41 +136,11 @@ public class AltosConfig implements ActionListener {
 
                void save_data() {
                        try {
-                               double frequency = frequency();
-                               boolean has_frequency = data.radio_frequency > 0;
-                               boolean has_setting = data.radio_setting > 0;
                                start_serial();
-                               serial_line.printf("c m %d\n", data.main_deploy);
-                               serial_line.printf("c d %d\n", data.apogee_delay);
-                               serial_line.printf("c L %d\n", data.apogee_lockout);
-                               if (!remote)
-                                       serial_line.printf("c f %d\n", data.radio_calibration);
-                               serial_line.set_radio_frequency(frequency,
-                                                               has_frequency,
-                                                               has_setting,
-                                                               data.radio_calibration);
-                               if (remote) {
-                                       serial_line.stop_remote();
-                                       serial_line.set_radio_frequency(frequency);
-                                       AltosUIPreferences.set_frequency(device.getSerial(), frequency);
-                                       serial_line.start_remote();
-                               }
-                               serial_line.printf("c c %s\n", data.callsign);
-                               if (data.flight_log_max != 0)
-                                       serial_line.printf("c l %d\n", data.flight_log_max);
-                               if (data.radio_enable >= 0)
-                                       serial_line.printf("c e %d\n", data.radio_enable);
-                               if (data.ignite_mode >= 0)
-                                       serial_line.printf("c i %d\n", data.ignite_mode);
-                               if (data.pad_orientation >= 0)
-                                       serial_line.printf("c o %d\n", data.pad_orientation);
-                               if (data.pyros.length > 0) {
-                                       for (int p = 0; p < data.pyros.length; p++) {
-                                               serial_line.printf("c P %s\n",
-                                                                  data.pyros[p].toString());
-                                       }
-                               }
-                               serial_line.printf("c w\n");
+                               data.save(serial_line, remote);
+                               if (remote)
+                                       AltosUIPreferences.set_frequency(device.getSerial(),
+                                                                        data.frequency());
                        } catch (InterruptedException ie) {
                        } catch (TimeoutException te) {
                        } finally {
@@ -291,51 +227,23 @@ public class AltosConfig implements ActionListener {
                                                       data.radio_channel);
        }
 
-       void set_frequency(double freq) {
-               int     frequency = data.radio_frequency;
-               int     setting = data.radio_setting;
-
-               if (frequency > 0) {
-                       data.radio_frequency = (int) Math.floor (freq * 1000 + 0.5);
-                       data.radio_channel = 0;
-               } else if (setting > 0) {
-                       data.radio_setting =AltosConvert.radio_frequency_to_setting(freq,
-                                                                                   data.radio_calibration);
-                       data.radio_channel = 0;
-               } else {
-                       data.radio_channel = AltosConvert.radio_frequency_to_channel(freq);
-               }
-       }
-
        void save_data() {
 
                /* bounds check stuff */
-               if (config_ui.flight_log_max() > log_limit()) {
+               if (config_ui.flight_log_max() > data.log_limit()) {
                        JOptionPane.showMessageDialog(owner,
                                                      String.format("Requested flight log, %dk, is larger than the available space, %dk.\n",
                                                                    config_ui.flight_log_max(),
-                                                                   log_limit()),
+                                                                   data.log_limit()),
                                                      "Maximum Flight Log Too Large",
                                                      JOptionPane.ERROR_MESSAGE);
                        return;
                }
 
-               data.main_deploy = config_ui.main_deploy();
-               data.apogee_delay = config_ui.apogee_delay();
-               data.apogee_lockout = config_ui.apogee_lockout();
-               data.radio_calibration = config_ui.radio_calibration();
-               set_frequency(config_ui.radio_frequency());
-               data.flight_log_max = config_ui.flight_log_max();
-               if (data.radio_enable >= 0)
-                       data.radio_enable = config_ui.radio_enable();
-               if (data.ignite_mode >= 0)
-                       data.ignite_mode = config_ui.ignite_mode();
-               if (data.pad_orientation >= 0)
-                       data.pad_orientation = config_ui.pad_orientation();
-               data.callsign = config_ui.callsign();
-               if (data.npyro > 0) {
-                       data.pyros = config_ui.pyros();
-               }
+               /* Pull data out of the UI and stuff back into our local data record */
+
+               data.get_values(config_ui);
+
                run_serial_thread(serial_mode_save);
        }
 
@@ -363,7 +271,7 @@ public class AltosConfig implements ActionListener {
        public AltosConfig(JFrame given_owner) {
                owner = given_owner;
 
-               device = AltosDeviceDialog.show(owner, Altos.product_any);
+               device = AltosDeviceUIDialog.show(owner, Altos.product_any);
                if (device != null) {
                        try {
                                serial_line = new AltosSerial(device);