From: Keith Packard Date: Tue, 27 Jul 2010 17:18:20 +0000 (-0700) Subject: Java clean ups -- use varargs where possible, remove AltosSerialReader X-Git-Tag: debian/0.6+268+gd0fd53b~12^2~1 X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=commitdiff_plain;h=8f2f38f2a9fb0c106e2c6b60cdc205292ce329ea Java clean ups -- use varargs where possible, remove AltosSerialReader Add methods that format stuff using String.format for voice and serial link, remove AltosSerialReader class and just embed that in the AltosSerial class directly. Signed-off-by: Keith Packard --- 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> monitors; LinkedBlockingQueue 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 (); } } - -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 q) { - reader.add_monitor(q); - } - - public void remove_monitor(LinkedBlockingQueue 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);