diff options
| author | Keith Packard <keithp@keithp.com> | 2014-06-13 15:54:08 -0700 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2014-06-13 16:02:18 -0700 | 
| commit | fb2d0c1ef98d9df3f64fb756d78392ce63a73435 (patch) | |
| tree | 70716e52fce06b8a84f73e67c5b4d040d6442dd8 | |
| parent | 191ea4a7bbcb22d70c648a9ba746f1061e6f74cb (diff) | |
altosdroid: Improve voice for TeleGPS
This avoids making lots of useless voice announcements for TeleGPS
Signed-off-by: Keith Packard <keithp@keithp.com>
| -rw-r--r-- | altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java | 17 | ||||
| -rw-r--r-- | altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java | 4 | 
2 files changed, 14 insertions, 7 deletions
| diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java index 77d4ba38..5e8515cb 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosVoice.java @@ -63,14 +63,17 @@ public class AltosVoice {  		boolean	spoke = false;  		if (old_state == null || old_state.state != state.state) { -			speak(state.state_name()); +			if (state.state != AltosLib.ao_flight_stateless) +				speak(state.state_name());  			if ((old_state == null || old_state.state <= AltosLib.ao_flight_boost) &&  			    state.state > AltosLib.ao_flight_boost) { -				speak(String.format("max speed: %d meters per second.", (int) (state.max_speed() + 0.5))); +				if (state.max_speed() != AltosLib.MISSING) +					speak(String.format("max speed: %d meters per second.", (int) (state.max_speed() + 0.5)));  				spoke = true;  			} else if ((old_state == null || old_state.state < AltosLib.ao_flight_drogue) &&  			           state.state >= AltosLib.ao_flight_drogue) { -				speak(String.format("max height: %d meters.", (int) (state.max_height() + 0.5))); +				if (state.max_height() != AltosLib.MISSING) +					speak(String.format("max height: %d meters.", (int) (state.max_height() + 0.5)));  				spoke = true;  			}  		} @@ -109,8 +112,9 @@ public class AltosVoice {  			}  			/* 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.state == AltosLib.ao_flight_stateless) &&  			    state.range >= 0)  			{  				speak(String.format("Height %d, bearing %s %d, elevation %d, range %d.\n", @@ -121,7 +125,8 @@ public class AltosVoice {  				                    (int) (state.elevation + 0.5),  				                    (int) (state.range + 0.5)));  			} else if (state.state > AltosLib.ao_flight_pad) { -				speak(String.format("%d meters", (int) (state.height() + 0.5))); +				if (state.height() != AltosLib.MISSING) +					speak(String.format("%d meters", (int) (state.height() + 0.5)));  			} else {  				reported_landing = 0;  			} diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java index 10bb3bd9..2d88974d 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java @@ -125,7 +125,9 @@ public class TabPad extends Fragment implements AltosDroidTab {  			mDataLoggingLights.set(state.flight != 0, state.flight == AltosLib.MISSING);  			if (state.gps != null) { -				mGPSLockedView.setText(AltosDroid.integer("%4d sats", state.gps.nsat)); +				int soln = state.gps.nsat; +				int nsat = state.gps.cc_gps_sat != null ? state.gps.cc_gps_sat.length : 0; +				mGPSLockedView.setText(String.format("%4d in soln, %4d in view", soln, nsat));  				mGPSLockedLights.set(state.gps.locked && state.gps.nsat >= 4, false);  				if (state.gps_ready)  					mGPSReadyView.setText("Ready"); | 
