diff options
Diffstat (limited to 'altosuilib/AltosDisplayThread.java')
| -rw-r--r-- | altosuilib/AltosDisplayThread.java | 44 | 
1 files changed, 21 insertions, 23 deletions
| diff --git a/altosuilib/AltosDisplayThread.java b/altosuilib/AltosDisplayThread.java index 73d85698..9aa31aa1 100644 --- a/altosuilib/AltosDisplayThread.java +++ b/altosuilib/AltosDisplayThread.java @@ -15,13 +15,13 @@   * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.   */ -package org.altusmetrum.altosuilib_8; +package org.altusmetrum.altosuilib_9;  import java.awt.*;  import javax.swing.*;  import java.io.*;  import java.text.*; -import org.altusmetrum.altoslib_8.*; +import org.altusmetrum.altoslib_9.*;  public class AltosDisplayThread extends Thread { @@ -78,7 +78,7 @@ public class AltosDisplayThread extends Thread {  				return;  			/* reset the landing count once we hear about a new flight */ -			if (state.state < AltosLib.ao_flight_drogue) +			if (state.state() < AltosLib.ao_flight_drogue)  				reported_landing = 0;  			/* Shut up once the rocket is on the ground */ @@ -87,8 +87,8 @@ public class AltosDisplayThread extends Thread {  			}  			/* If the rocket isn't on the pad, then report height */ -			if (AltosLib.ao_flight_drogue <= state.state && -			    state.state < AltosLib.ao_flight_landed && +			if (AltosLib.ao_flight_drogue <= state.state() && +			    state.state() < AltosLib.ao_flight_landed &&  			    state.from_pad != null &&  			    state.range >= 0)  			{ @@ -99,7 +99,7 @@ public class AltosDisplayThread extends Thread {  					    (int) (state.from_pad.bearing + 0.5),  					    (int) (state.elevation + 0.5),  					    AltosConvert.distance.say(state.range)); -			} else if (state.state > AltosLib.ao_flight_pad && state.height() != AltosLib.MISSING) { +			} else if (state.state() > AltosLib.ao_flight_pad && state.height() != AltosLib.MISSING) {  				voice.speak(AltosConvert.height.say_units(state.height()));  			} else {  				reported_landing = 0; @@ -109,11 +109,11 @@ public class AltosDisplayThread extends Thread {  			 * either we've got a landed report or we haven't heard from it in  			 * a long time  			 */ -			if (state.state != AltosLib.ao_flight_stateless && -			    state.state >= AltosLib.ao_flight_drogue && +			if (state.state() != AltosLib.ao_flight_stateless && +			    state.state() >= AltosLib.ao_flight_drogue &&  			    (last ||  			     System.currentTimeMillis() - state.received_time >= 15000 || -			     state.state == AltosLib.ao_flight_landed)) +			     state.state() == AltosLib.ao_flight_landed))  			{  				if (Math.abs(state.speed()) < 20 && state.height() < 100)  					voice.speak("rocket landed safely"); @@ -124,10 +124,6 @@ public class AltosDisplayThread extends Thread {  						    (int) (state.from_pad.bearing + 0.5),  						    AltosConvert.distance.say_units(state.from_pad.distance));  				++reported_landing; -				if (state.state != AltosLib.ao_flight_landed) { -					state.state = AltosLib.ao_flight_landed; -					show_safely(); -				}  			}  		} @@ -167,7 +163,7 @@ public class AltosDisplayThread extends Thread {  		}  		public synchronized void notice(boolean spoken) { -			if (old_state != null && old_state.state != state.state) { +			if (old_state != null && old_state.state() != state.state()) {  				report_time = now();  				this.notify();  			} else if (spoken) @@ -182,17 +178,17 @@ public class AltosDisplayThread extends Thread {  	synchronized boolean tell() {  		boolean	ret = false; -		if (old_state == null || old_state.state != state.state) { -			if (state.state != AltosLib.ao_flight_stateless) +		if (old_state == null || old_state.state() != state.state()) { +			if (state.state() != AltosLib.ao_flight_stateless)  				voice.speak(state.state_name()); -			if ((old_state == null || old_state.state <= AltosLib.ao_flight_boost) && -			    state.state > AltosLib.ao_flight_boost) { +			if ((old_state == null || old_state.state() <= AltosLib.ao_flight_boost) && +			    state.state() > AltosLib.ao_flight_boost) {  				if (state.max_speed() != AltosLib.MISSING)  					voice.speak("max speed: %s.",  						    AltosConvert.speed.say_units(state.max_speed() + 0.5));  				ret = true; -			} else if ((old_state == null || old_state.state < AltosLib.ao_flight_drogue) && -				   state.state >= AltosLib.ao_flight_drogue) { +			} else if ((old_state == null || old_state.state() < AltosLib.ao_flight_drogue) && +				   state.state() >= AltosLib.ao_flight_drogue) {  				if (state.max_height() != AltosLib.MISSING)  					voice.speak("max height: %s.",  						    AltosConvert.height.say_units(state.max_height() + 0.5)); @@ -223,12 +219,14 @@ public class AltosDisplayThread extends Thread {  		try {  			for (;;) {  				try { -					state = reader.read(); -					if (state == null) { +					AltosState new_state = reader.read(); +					if (new_state == null) { +						state = null;  						listener_state.running = false;  						break;  					} -					reader.update(state); +					reader.update(new_state); +					state = new_state;  					show_safely();  					told = tell();  					idle_thread.notice(told); | 
