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); | 
