Java clean ups -- use varargs where possible, remove AltosSerialReader
[fw/altos] / ao-tools / altosui / AltosUI.java
index 43c40799f193552ba66d2dbbd74b1b52c9d140ad..43aae295978c5aa4838f0acb567f718a90b5201d 100644 (file)
@@ -27,7 +27,6 @@ import java.util.*;
 import java.text.*;
 import java.util.prefs.*;
 import java.util.concurrent.LinkedBlockingQueue;
-import gnu.io.*;
 
 import altosui.AltosSerial;
 import altosui.AltosSerialMonitor;
@@ -38,6 +37,8 @@ import altosui.AltosPreferences;
 import altosui.AltosLog;
 import altosui.AltosVoice;
 
+import libaltosJNI.*;
+
 class AltosFlightStatusTableModel extends AbstractTableModel {
        private String[] columnNames = {"Height (m)", "State", "RSSI (dBm)", "Speed (m/s)" };
        private Object[] data = { 0, "idle", 0, 0 };
@@ -220,16 +221,8 @@ public class AltosUI extends JFrame {
                flightInfoModel[col].addRow(name, value);
        }
 
-       public void info_add_row(int col, String name, String format, Object value) {
-               flightInfoModel[col].addRow(name, String.format(format, value));
-       }
-
-       public void info_add_row(int col, String name, String format, Object v1, Object v2) {
-               flightInfoModel[col].addRow(name, String.format(format, v1, v2));
-       }
-
-       public void info_add_row(int col, String name, String format, Object v1, Object v2, Object v3) {
-               flightInfoModel[col].addRow(name, String.format(format, v1, v2, v3));
+       public void info_add_row(int col, String name, String format, Object... parameters) {
+               flightInfoModel[col].addRow(name, String.format(format, parameters));
        }
 
        public void info_add_deg(int col, String name, double v, int pos, int neg) {
@@ -366,7 +359,7 @@ public class AltosUI extends JFrame {
 
                                        /* If the rocket isn't on the pad, then report height */
                                        if (state.state > AltosTelemetry.ao_flight_pad) {
-                                               voice.speak(String.format("%d meters", (int) (state.height + 0.5)));
+                                               voice.speak("%d meters", (int) (state.height + 0.5));
                                        }
 
                                        /* If the rocket is coming down, check to see if it has landed;
@@ -382,9 +375,9 @@ public class AltosUI extends JFrame {
                                                else
                                                        voice.speak("rocket may have crashed");
                                                if (state.gps != null)
-                                                       voice.speak(String.format("bearing %d degrees, range %d meters",
-                                                                                 (int) (state.from_pad.bearing + 0.5),
-                                                                                 (int) (state.from_pad.distance + 0.5)));
+                                                       voice.speak("bearing %d degrees, range %d meters",
+                                                                   (int) (state.from_pad.bearing + 0.5),
+                                                                   (int) (state.from_pad.distance + 0.5));
                                                ++reported_landing;
                                        }
                                }
@@ -402,12 +395,12 @@ public class AltosUI extends JFrame {
                        voice.speak(state.data.state);
                        switch (state.state) {
                        case AltosTelemetry.ao_flight_fast:
-                               voice.speak(String.format("max speed %d meters per second",
-                                                         (int) (state.max_speed + 0.5)));
+                               voice.speak("max speed %d meters per second",
+                                           (int) (state.max_speed + 0.5));
                                break;
                        case AltosTelemetry.ao_flight_drogue:
-                               voice.speak(String.format("max height %d meters",
-                                                         (int) (state.max_height + 0.5)));
+                               voice.speak("max height %d meters",
+                                           (int) (state.max_height + 0.5));
                                break;
                        }
                }
@@ -475,31 +468,21 @@ public class AltosUI extends JFrame {
        }
 
        private void ConnectToDevice() {
-               AltosDevice     device = AltosDeviceDialog.show(AltosUI.this, "TeleDongle");
+               altos_device    device = AltosDeviceDialog.show(AltosUI.this, "TeleDongle");
 
                if (device != null) {
                        try {
-                               serial_line.connect(device.tty);
+                               serial_line.open(device);
                                DeviceThread thread = new DeviceThread(serial_line);
                                run_display(thread);
                        } catch (FileNotFoundException ee) {
                                JOptionPane.showMessageDialog(AltosUI.this,
-                                                             device.tty,
+                                                             device.getPath(),
                                                              "Cannot open serial port",
                                                              JOptionPane.ERROR_MESSAGE);
-                       } catch (NoSuchPortException ee) {
-                               JOptionPane.showMessageDialog(AltosUI.this,
-                                                             device.tty,
-                                                             "No such serial port",
-                                                             JOptionPane.ERROR_MESSAGE);
-                       } catch (PortInUseException ee) {
-                               JOptionPane.showMessageDialog(AltosUI.this,
-                                                             device.tty,
-                                                             "Port in use",
-                                                             JOptionPane.ERROR_MESSAGE);
                        } catch (IOException ee) {
                                JOptionPane.showMessageDialog(AltosUI.this,
-                                                             device.tty,
+                                                             device.getPath(),
                                                              "Unkonwn I/O error",
                                                              JOptionPane.ERROR_MESSAGE);
                        }