diff options
-rw-r--r-- | ao-tools/altosui/AltosSerial.java | 53 | ||||
-rw-r--r-- | ao-tools/altosui/AltosUI.java | 28 | ||||
-rw-r--r-- | ao-tools/altosui/AltosVoice.java | 4 |
3 files changed, 32 insertions, 53 deletions
diff --git a/ao-tools/altosui/AltosSerial.java b/ao-tools/altosui/AltosSerial.java index 073bfb78..e84f5b63 100644 --- a/ao-tools/altosui/AltosSerial.java +++ b/ao-tools/altosui/AltosSerial.java @@ -37,7 +37,9 @@ import libaltosJNI.SWIGTYPE_p_altos_list; * line in a queue. Dealing with that queue is left up to other * threads. */ -class AltosSerialReader implements Runnable { + +public class AltosSerial implements Runnable { + SWIGTYPE_p_altos_file altos; LinkedList<LinkedBlockingQueue<String>> monitors; LinkedBlockingQueue<String> reply_queue; @@ -116,13 +118,27 @@ class AltosSerialReader implements Runnable { } } + public void putc(char c) { + libaltos.altos_putchar(altos, c); + } + + public void print(String data) { + for (int i = 0; i < data.length(); i++) + putc(data.charAt(i)); + } + + public void printf(String format, Object ... arguments) { + print(String.format(format, arguments)); + } + public void open(altos_device device) throws FileNotFoundException { close(); altos = libaltos.altos_open(device); input_thread = new Thread(this); input_thread.start(); } - public AltosSerialReader () { + + public AltosSerial() { altos = null; input_thread = null; line = ""; @@ -130,36 +146,3 @@ class AltosSerialReader implements Runnable { reply_queue = new LinkedBlockingQueue<String> (); } } - -public class AltosSerial { - AltosSerialReader reader = null; - - public void close() { - reader.close(); - } - - public void open(altos_device device) throws FileNotFoundException { - reader.open(device); - } - - void init() { - reader = new AltosSerialReader(); - } - - public void add_monitor(LinkedBlockingQueue<String> q) { - reader.add_monitor(q); - } - - public void remove_monitor(LinkedBlockingQueue<String> q) { - reader.remove_monitor(q); - } - - public AltosSerial() { - init(); - } - - public AltosSerial(altos_device device) throws FileNotFoundException { - init(); - open(device); - } -} diff --git a/ao-tools/altosui/AltosUI.java b/ao-tools/altosui/AltosUI.java index 33ed2c90..43aae295 100644 --- a/ao-tools/altosui/AltosUI.java +++ b/ao-tools/altosui/AltosUI.java @@ -221,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) { @@ -367,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; @@ -383,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; } } @@ -403,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; } } diff --git a/ao-tools/altosui/AltosVoice.java b/ao-tools/altosui/AltosVoice.java index e4ea99a2..c39bfb9b 100644 --- a/ao-tools/altosui/AltosVoice.java +++ b/ao-tools/altosui/AltosVoice.java @@ -47,6 +47,10 @@ public class AltosVoice implements Runnable { } } + public void speak(String format, Object... parameters) { + speak(String.format(format, parameters)); + } + public AltosVoice () { voice_manager = VoiceManager.getInstance(); voice = voice_manager.getVoice(voice_name); |